Android的EditText在显示虚拟键盘并且涉及SurfaceView时隐藏

2024-04-18

我有一个简单的用户界面: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(使用前将#替换为@)

Android的EditText在显示虚拟键盘并且涉及SurfaceView时隐藏 的相关文章

随机推荐

  • 如何在 Visual Studio 安装项目中创建卸载程序?

    我已经创建了一个 Visual Studio 安装项目 但我不知道如何在我的 Visual Studio 安装项目中创建卸载程序 请告诉我该怎么做 我正在使用 Visual Studio 2005 或者是否有任何其他软件可以使用卸载程序创建
  • Oracle JDBC:用户名/密码无效 (ora-01017)

    我在与 Oracle 数据库服务器的 jdbc 连接上遇到了一个奇怪的问题 我们在 tomcat 服务器上运行应用程序 这些应用程序使用 oracle 数据库 所有应用程序都使用相同的凭据 应用程序全天运行良好 晚上没有活动 早上 当应用程
  • 使用给定的 DateTime 对象获取一个月的第一天和最后一天

    我想获取给定日期所在月份的第一天和最后一天 该日期来自 UI 字段中的值 如果我使用时间选择器我可以说 var maxDay dtpAttendance MaxDate Day 但我试图从 DateTime 对象中获取它 所以如果我有这个
  • 更改 Android 上活动动画的 z 顺序

    有没有办法反转活动动画的 z 顺序 基本上 当您启动新活动时 它会被添加到后台堆栈 并且其窗口会添加到前一个活动的窗口上 有时稍后返回时 从后台堆栈获取的活动会在顶部活动下方显示其窗口 大多数时候这是完全有道理的 但我对这种行为有以下问题
  • 如何解决SBT依赖的依赖冲突?

    我有一个项目的构建 sbt正在使用 libraryDependencies Seq com lerestau killer launcher 1 0 2 com lerestau menu starter 1 0 0 菜单启动器过渡下载 杀
  • JavaFX检测同时按下的多个键盘按键

    正如标题所说 我想检测同时按下的多个键盘按键 同时地 并被按下 同时地 一段时间 我正在尝试添加多个事件处理程序Scene但它不起作用 EventHandler
  • MySQL如何获取不是我好友的用户

    有人可以帮助我吗 我需要吸引不是我朋友的用户 我有以下表格 users id user 1 Name1 2 name2 和桌子friends id id user id friends 1 2 3 2 5 4 我尝试类似的操作 但在某些查询
  • 全文索引和复合索引以及它们如何影响查询

    只是说我有一个查询如下 SELECT name category address city state FROM table WHERE MATCH name subcategory category tag1 AGAINST educat
  • 与断言相比,scala 中的假设有何含义?

    Scala 似乎定义了 3 种断言 assert require and assume 据我所知 差异 与通用断言相比 require它是专门用于检查输入 参数 传入消息等 的 是什么意思assume then 如果你看一下代码Predef
  • 关闭 WPF 中 Frame 内的页面

    我有一个窗口和一个框架 在该框架中 我打开了许多页面 我想通过单击 关闭 按钮关闭这些页面 问题是页面看不到我的框架我尝试在页面方法中的事件中编写关闭按钮 在主窗口中执行另一个事件 因为在主窗口上很容易看到框架 但它不起作用 这是我在页面中
  • Bootstrap 输入组插件未内联

    这是我的代码 http www bootply com iR1SvOyEGH http www bootply com iR1SvOyEGH
  • SwiftUI 中的圆角边框

    如何在 SwiftUI 中圆化边框 我认为这会起作用 cornerRadius 10 border Color white 但它不起作用 这是我现在的解决方法 overlay RoundedRectangle cornerRadius 10
  • 限制特定组的 Firebase 数据库和存储写入访问权限

    我有一个带有内容管理端的 React Redux Firebase 应用程序 所有这些页面都以 admin 我需要将 Firebase 数据库和 Firebase 存储写入权限限制为这些用户的一小部分 并在未经身份验证 或未经管理员角色身份
  • 从.c调用MASM32过程

    我现在正在使用 Visual Studio 我需要构建一个 win32 应用程序并需要从 C 函数调用过程 但我总是收到构建错误 错误 3 错误 LNK1120 1 个未解析的外部 我已经通过一个过程将所有内容简化为一个简单的主函数和简单的
  • CodeIgniter - 删除文件,路径问题

    我的根目录中有 3 个文件夹 application system 和 uploads 在 application controllers mycontroller php 我有这行代码 delete files uploads file
  • 在 PowerShell 中显示 Unicode

    我想要实现的目标应该相当简单 尽管 PowerShell 试图让它变得困难 我想显示文件的完整路径 其中一些文件的名称中包含阿拉伯语 中文 日语和俄语字符 我总是得到一些无法解读的输出 如下所示 控制台中看到的输出正被另一个脚本使用 输出包
  • 如何在 Chrome DevTools 中查看元素上触发的事件?

    我在库的页面上有一个可自定义的表单元素 我想看看当我与它交互时会触发哪些 javascript 事件 因为我试图找出要使用的事件处理程序 如何使用 Chrome Web Developer 来做到这一点 您可以使用监控事件 http www
  • 如何告诉 JavaFX WebView 忽略“use strict”指令?

    我正在尝试使用以下代码将 mozilla 查看器集成到 JavaFx WebView 中 import javafx application Application import javafx scene Scene import java
  • 如何将这个数学方程写成c++

    我不知道如何编写C 中给出的公式 也不能使用捷径 我必须编写长版本的代码 这是我到目前为止所拥有的 4x 3 8x 2 9x 18 y 7 x 3 3x 2 18 表示绝对值 它需要采用这样的格式 这是我书中的一个示例 double y 4
  • Android的EditText在显示虚拟键盘并且涉及SurfaceView时隐藏

    我有一个简单的用户界面 EditText 应位于 SurfaceView 下方 我使用RelativeLayout 来排列这两个视图 现在 当我点击 EditText 打开虚拟键盘时 SurfaceView 会向上滑动 但 EditText