【问题标题】:Landscape keyboard obscures view横向键盘遮挡视图
【发布时间】:2012-06-09 20:49:32
【问题描述】:

我的活动中有一个 OpenGL SurfaceView,我正在使用键盘输入一些文本(通过网络发送)。不存在 EditText,因此我强制使用以下命令显示键盘:

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);

活动已定义属性android:windowSoftInputMode="adjustResize",这在纵向模式下效果很好,当显示键盘时,布局正在调整大小(因此也调整了surfaceview)。但是,它不会在横向模式下发生,这使得表面视图的一部分(实际上是大部分)变得模糊。 SurfaceView 实现了平移和缩放,所以如果我至少可以知道正在显示的键盘的大小并相应地重新定位 SurfaceView,那就太好了。

有没有办法让软键盘在横向模式下的行为与在纵向模式下的行为方式相同(这意味着它将调整我的布局大小)?如果没有,有没有办法获得键盘的高度(显然是全屏)?

【问题讨论】:

    标签: android android-softkeyboard landscape-portrait


    【解决方案1】:

    android-developers newsgoup 的帮助下,我能够通过在视图上使用覆盖 (onCreateInputConnection) 来解决这个问题。见original thread

    @Override
    public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
      InputConnection connection = super.onCreateInputConnection(outAttrs);
      outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_FULLSCREEN;
      return connection;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-11-12
      • 2019-04-01
      • 1970-01-01
      • 2023-01-27
      • 2016-09-01
      • 1970-01-01
      • 2014-03-27
      • 1970-01-01
      • 2011-11-08
      相关资源
      最近更新 更多