我有一个简单的用户界面: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 类重现相同的布局。
欢迎任何建议,我非常感谢您的帮助。
Thanks.
Edit:
这里有两张截图,一张显示底部的 EditText,没有虚拟键盘,一张有虚拟键盘,但没有 EditText。有趣的是,SurfaceView 和 EditText 实际上向上移动,EditText 只是消失了。顺便说一句,如果按钮位于 EditText 旁边,也会发生这种情况。
SurfaceView 下方的 EditText(左); EditText 消失了(右) http://i46.tinypic.com/fqaz5.png
作为评论者关于此错误的线程 http://code.google.com/p/android/issues/detail?id=11676建议,通过设置背景颜色很容易解决这个问题SurfaceView
or GLSurfaceView
透明mSurfaceView.setBackgroundColor(Color.TRANSPARENT);
以及。
当我按下EditText
在 Samsung Galaxy Tab 10.1 上的 Honeycomb (v13) 上。问题是,之后GLSurfaceView
调整了大小,它的位置仍然是一个黑色矩形,覆盖了EditText
。该解决方案的工作原理是使错误的矩形透明,因此EditText
看得到。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)