如何修复EditText?

时间:2013-01-18 22:21:47

标签: java android android-edittext

  

可能重复:
  background layout moving when soft keyboard displayed - android

我有一个包含多个视图和EditText的布局文件:

<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android">
    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/connect"
            android:id="@+id/btnConnect" android:layout_alignParentRight="true" android:layout_alignParentTop="true"/>
    <Spinner
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/spServers"
            android:layout_toLeftOf="@+id/btnConnect" android:layout_alignTop="@+id/btnConnect"
            android:layout_alignBottom="@+id/btnConnect" android:layout_alignParentLeft="true"/>
    <ToggleButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btnType" android:layout_alignLeft="@+id/btnConnect"
            android:layout_below="@+id/btnConnect" android:layout_alignRight="@+id/btnConnect" android:textOff="@string/text"
            android:textOn="@string/grid" />
    <Spinner
            android:layout_width="98dp"
            android:layout_height="22dp"
            android:id="@+id/spDataBases" android:layout_toLeftOf="@+id/btnConnect"
            android:layout_below="@+id/btnConnect"
            android:layout_alignBottom="@+id/btnType" android:layout_alignLeft="@+id/spServers"/>
    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/check"
            android:id="@+id/btnCheck" android:layout_alignLeft="@+id/spServers" android:layout_alignParentBottom="true"/>
    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/run"
            android:id="@+id/btnRun" android:layout_toRightOf="@+id/btnCheck" android:layout_alignTop="@+id/btnCheck"
            android:layout_toLeftOf="@+id/btnLoad"/>
    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/load"
            android:id="@+id/btnLoad" android:layout_alignRight="@+id/btnConnect"
            android:layout_alignTop="@+id/btnCheck"/>
    <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/txtSQL" android:layout_alignLeft="@+id/spServers" android:layout_below="@+id/btnType"
            android:layout_alignRight="@+id/btnConnect" android:layout_above="@+id/btnCheck"
            android:gravity="left|top" android:singleLine="false" android:textAlignment="gravity"/>
</RelativeLayout>

看起来像这样:

enter image description here

但是当我尝试输入内容时,我遇到了这个问题:

I'm trying to type something

请帮我解决这个问题。当我输入一些文字时,我不想改变布局上的屏幕位置。当用户尝试输入内容时,它会向上移动。

1 个答案:

答案 0 :(得分:0)

您可以尝试告诉Android在调出键盘时不调整布局大小,确保您输入的内容可见。 (文件:http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft

将以下内容添加到您的应用清单中:(在相关活动中,而不是下面的虚拟活动)

<activity android:name="Activity"
  ..
  android:windowSoftInputMode="adjustPan"
  ..
</activity>

我不清楚当您点击EditText并且键盘出现时,或者只有在您开始输入时才会出现问题?如果是后者,我的答案可能无济于事。我也不确定“adjustPan”是否是理想的行为,但它值得一试!将整个RelativeLayout放在ScrollView中也是一个好主意。