可能有一些背景:当用户单击它时,我试图在可滚动的全屏 EditText
上方显示一个特定的键盘 View 。问题是如果光标位于 EditText
的底部,它会被弹出的键盘 View 隐藏。
与常规 IME View 的明显区别在于,IME View 将 EditText
推到顶部并让用户在该顶部区域滚动整个 EditText
.键盘 View 位于底部。一切都是可见和可访问的。这也是我想通过弹出窗口实现的目标。
因此,我的问题是:当常规 IME 可见时,布局是什么样的?我不需要动画(如果很难做我可以跳过那部分)。
我尝试遍历布局层次结构以查看有何不同。这是 IME 可见的:
root: com.android.internal.policy.impl.PhoneWindow$DecorView
android.widget.LinearLayout
android.widget.FrameLayout
android.widget.TextView
android.widget.FrameLayout #1
android.widget.RelativeLayout
android.widget.ScrollView
android.widget.EditText
com.mytest.KeyboardView
这里没有输入法,我的弹出 View 可见:
root: com.android.internal.policy.impl.PhoneWindow$DecorView
android.widget.LinearLayout
android.widget.FrameLayout
android.widget.TextView
android.widget.FrameLayout #1
android.widget.RelativeLayout
android.widget.ScrollView
android.widget.EditText
com.mytest.KeyboardView
显然,没有区别。 IME 真的不见了吗?
为了更容易理解,我用“#1”标记了我的应用程序,因此 RelativeLayout
是我的 XML 布局中的根元素。
谁能帮帮我?如果有人准备好了 XML 样式的布局,我会非常高兴看到它。
更新
到现在为止,我认为我认为 IME View 会将自己放入 Activity 的布局层次结构中是错误的。
与此同时,我试图让 PopupWindow
工作,但无法想出解决 EditText
中隐藏光标问题的方法。
因此,让我问一下:IME View 是如何出现的,或者它是如何融入整体显示的?它如何将自身滚动到编辑字段下方并将编辑字段向上移动并使其按原样滚动?
最佳答案
似乎无法访问 IME。或者至少它不能通过应用程序以任何方式访问。
我现在对我的 EditText
和键盘有一个相当静态的 View 。键盘不会悬停在屏幕上,也不会出现任何其他花哨的东西。它安装在 EditText
下方。就是这样。它看起来并不壮观或任何东西,但我们在此同意用户可能不会输入长篇故事。
关于Android:IME 处于 Activity 状态时的布局是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4085274/