代码之家  ›  专栏  ›  技术社区  ›  sjngm quinti

安卓:输入法激活时的布局是什么?

  •  3
  • sjngm quinti  · 技术社区  · 14 年前

    可能是背景:我正在尝试在可滚动的全屏上显示一个特定的键盘视图 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和我的弹出视图:

    根目录: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.EditText版本
    

    显然,没有区别。时间真的不见了吗?

    为了便于理解,我将我的应用标记为“#1”,因此 RelativeLayout 是XML布局中的根元素。

    更新

    到目前为止,我认为我错误地认为IME视图将自己放入活动的布局层次结构中。

    与此同时,我试图 PopupWindow 工作,但无法想出解决隐藏光标在 编辑文本

    因此,让我来问一个问题:IME视图是如何显示的,或者它是如何编织到整体显示中的?它如何在编辑字段下面滚动自己,并向上移动编辑字段,使其按原来的方式滚动?

    1 回复  |  直到 9 年前
        1
  •  0
  •   sjngm quinti    14 年前

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

    我现在对我的 EditText 编辑文本 . 就这样。它看起来并不壮观,但我们这里同意用户可能不会输入长篇故事。