SoftKeyboard覆盖editText

时间:2015-10-30 12:19:54

标签: android android-edittext android-softkeyboard android-scrollview

我有一些元素的scrollview,其中一个 - 编辑文本,靠近布局的底部。 当这个editText请求通过点击聚焦时 - 打开软键盘并覆盖该editText fild,这样用户就无法看到他输入的内容......

任何想法为什么会发生以及如何解决?

这是我的代码清单:

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

5 个答案:

答案 0 :(得分:1)

试试这个..

android:windowSoftInputMode="adjustPan"

答案 1 :(得分:0)

<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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

只需转发并编写此代码

即可

机器人:windowSoftInputMode = “stateVisible | adjustNothing”

这样假设您的活动名称为com.something.Activity

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

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

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

答案 4 :(得分:0)

在ScrollView中,您可以滚动并有效地输入edittext:

var mychararray = recievedtext.ToCharArray();