【发布时间】:2010-06-04 22:51:38
【问题描述】:
我有一个简单的用户界面: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 旁边,这也会发生在按钮上。
EditText below a SurfaceView (left); EditText is gone (right)
【问题讨论】:
-
您可以考虑附上两张截图,一张是隐藏软键盘(即“正常”),另一张是在您点击
EditText调出键盘后。您可以使用 DDMS 来制作屏幕截图。
标签: android surfaceview