SoftKeyboard 覆盖 editText

SoftKeyboard override editText

我有一些元素的滚动视图,其中之一 - 编辑文本,靠近布局底部。 当此 editText 通过单击请求焦点时 - 打开软键盘并覆盖该 editText 字段,因此用户看不到他输入的内容...

知道为什么会发生这种情况以及如何解决它吗?

这是我的代码清单:

<activity
            android:name=".acitivity.TransferActivity"
            android:label="@string/title_activity_transfer"
            android:theme="@style/AppTheme.NoActionBar"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="adjustResize">
        </activity>

这里是 activity xml:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar_transfer"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

    <fragment
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/container_transfer_activity"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:layout="@layout/fragment_transfer" />


</LinearLayout>

这里是片段xml:

 <ScrollView
                android:id="@+id/transfer_scroller"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/blue_500"
                xmlns:android="http://schemas.android.com/apk/res/android">
               <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                        //some code here
               </LinearLayout>
               <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                        //some code here
               </LinearLayout>
               <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                        <EditText
                            android:id="@+id/et_transfer_p1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:gravity="center_horizontal"
                            android:inputType="number"
                            android:textColor="@color/gray_400"
                            android:textSize="@dimen/font_main_2" >
                        </EditText>
               </LinearLayout>
               </LinearLayout>
 </ScrollView>
<EditText
        android:id="@+id/et_transfer_p1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:gravity="center_horizontal"
        android:inputType="number"
        android:textColor="@color/gray_400"
        android:textSize="@dimen/font_main_2" />

并将 ScrollView 高度设置为 match_parent

对您的清单文件尝试此操作:

<activity
   android:name="com.android.test.ActivityName"
   android:windowSoftInputMode="stateHidden|adjustResize" >
</activity>

试试这个..

android:windowSoftInputMode="adjustPan"

只需转到清单并编写此代码

android:windowSoftInputMode="stateVisible|adjustNothing"

像这样假设你的activitynamecom.something.Activity

       <activity  android:name="com.something.Activity"

         android:windowSoftInputMode="stateVisible|adjustNothing"
        ></activity>

它会调整,你的textview位置不会改变。

在您的 ScrollView 中添加它可以让您有效地滚动和输入编辑文本:

android:fillViewport="true