也许有一些背景:我试图在可滚动的全屏幕上看到一个特定的键盘视图 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

显然,没有区别。 IME真的缺少吗?

为了更轻松地理解,我用“#1”标记了我的应用程序,所以 RelativeLayout 是我XML-Layout中的根元素。

谁能帮帮我吗?如果有人准备好XML风格的布局,我会很高兴看到它。

更新

到现在为止,我相信我认为IME视图将自己置于活动的布局层次结构时是错误的。

同时,我试图做一个 PopupWindow 工作,但无法提出可以解决隐藏光标的问题 EditText.

因此,让我问一下:IME视图如何显示,或者如何编织到整体显示中?它如何在编辑字段下方滚动并将编辑字段移动并使其以其方式滚动?

有帮助吗?

解决方案

似乎IME无法达到。或至少该应用程序无法以任何方式访问它。

我现在对我的 EditText 和键盘。键盘不会徘徊在屏幕上,也不会其他任何花哨的东西。它安装在 EditText. 。就是这样。它看起来并不壮观,但我们在这里同意用户可能不会输入长篇小说。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top