我有一个简单的用户界面: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>
Run Code Online (Sandbox Code Playgroud)
主Activity类只需要显示布局.当我启动程序并点击EditText时,会出现虚拟键盘,但EditText字段已消失.
也许RelativeLayout导致问题,但我不知道如何使用另一个Layout类重现相同的布局.
欢迎任何建议,非常感谢您的帮助.
谢谢.
编辑:
这里有两个截图,一个显示底部的EditText没有虚拟键盘,一个显示虚拟键盘,但没有EditText.有趣的是,SurfaceView和EditText实际上向上移动,EditText就消失了.顺便说一句,如果它位于EditText旁边,也会发生这种情况.