EditText
也许有一些背景:当用户单击它时,我试图在可滚动的全屏上方显示一个特定的键盘视图。问题是,如果光标位于底部,EditText
它会被弹出的键盘视图隐藏。
与常规 IME 视图的明显区别在于 IME 视图将 推到顶部并让用户在该顶部区域EditText
滚动整个内容。EditText
键盘视图位于底部。一切都是可见的和可访问的。这也是我想通过弹出窗口实现的目标。
因此,我的问题是:当常规 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
这里没有 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
显然,没有区别。输入法真的没有了吗?
为了更容易理解,我用“#1”标记了我的应用程序,因此它RelativeLayout
是我的 XML 布局中的根元素。
谁能帮帮我吗?如果有人准备好 XML 样式的布局,我会很高兴看到它。
更新
到目前为止,我认为 IME 视图会将自己放入活动的布局层次结构中的想法是错误的。
与此同时,我正在尝试制作一项PopupWindow
工作,但无法想出一些可以解决EditText
.
因此,让我问这个问题:IME 视图是如何出现的,或者它是如何融入到整体显示中的?它如何在编辑字段下方滚动并向上移动编辑字段并使其滚动?