小编Jan*_*Jan的帖子

当显示虚拟键盘并涉及SurfaceView时,将隐藏Android的EditText

我有一个简单的用户界面: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旁边,也会发生这种情况.

SurfaceView下面的EditText(左); EditText消失了(右)

android surfaceview

10
推荐指数
1
解决办法
7680
查看次数

标签 统计

android ×1

surfaceview ×1