我有一个简单的用户界面:EditText 应该位于 SurfaceView 下方。我使用RelativeLayout 来排列这两个视图。
现在,当我点击 EditText 打开虚拟键盘时,SurfaceView 向上滑动,但 EditText 被隐藏并且不显示键入的字符串。
要重现,请使用以下布局 XML 代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout01"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<SurfaceView
android:id="@+id/SurfaceView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</SurfaceView>
<EditText
android:id="@+id/EditText01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:selectAllOnFocus="true"
android:textStyle="normal"
android:singleLine="true">
</EditText>
</RelativeLayout>
主 Activity 类只需要显示布局。当我启动程序并点击 EditText 时,会出现虚拟键盘,但 EditText 字段消失了。
也许是 RelativeLayout 导致了问题,但我不知道如何使用另一个 Layout 类重现相同的布局。
欢迎任何建议,我非常感谢您的帮助。
谢谢。
编辑:
这是两张截图,一张在底部显示没有虚拟键盘的 EditText,一张带有虚拟键盘但没有 EditText。有趣的是,SurfaceView 和 EditText 实际上向上移动,EditText 只是消失了。顺便说一句,如果按钮位于 EditText 旁边,这也会发生在按钮上。