【问题标题】:Android soft keyboard pushing viewsAndroid软键盘推送视图
【发布时间】:2016-04-04 01:14:07
【问题描述】:

我正在为安卓开发一个软键盘,但遇到了一个我无法解决的问题。问题是当我打开键盘时,它会错误地移动其他视图(见图,我的键盘在左边)。

我尝试了多种在 stackoverflow 或其他地方找到的解决方案,但它们对我不起作用。

我试过了:

android:windowSoftInputMode="adjustResize"
android:windowSoftInputMode="stateHidden|adjustPan"
android:windowSoftInputMode="adjustResize|stateVisible|stateAlwaysHidden"

但它并没有改变您在屏幕截图中看到的行为。

所以,请帮我解决这个问题。

附言。我知道在提供"adjustResize""stateHidden|adjustPan" 的地方有很多类似的问题,但它对我不起作用。

P.p.s 截图是在 android 6.0.1 中拍摄的。

谢谢。

【问题讨论】:

  • #Fedor Tsyganov : 你试过android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
  • @IntelliJAmiya 他正在创建一个自定义键盘,那么您将如何在其中调整平移
  • @Fedor 也添加您的代码,因为我的键盘没有显示此行为
  • @VivekMishra 我需要从扩展 InputMethodService 的类或扩展 KeyboardView 的类中包含我的代码吗?
  • @IntelliJAmiya 是的,我做到了,但它不起作用

标签: android android-layout view keyboard android-softkeyboard


【解决方案1】:

您可以简单地将 Activity 的 windowSoftInputMode 标志切换为“adjustPan”。移除 adjustResize

 <activity
   ...
   android:windowSoftInputMode="adjustPan"> 
   </activity>

【讨论】:

  • 请阅读说明,解决方案“android:windowSoftInputMode”不起作用。
  • 你能发布你的布局xml吗?这可能有助于理解原因
  • 或尝试使用 android:windowSoftInputMode="adjustNothing"。即使您尝试了 windowsSoftInputMode 与其他选项,我认为它可以解决问题。
  • "adjustNothing" 无济于事,这在 xml 文件中不是问题,因为我正在开发键盘,而不是普通应用程序,它的工作方式与普通应用程序有点不同,例如,清单中没有活动标签
【解决方案2】:

尝试用 scrollView 包裹你的布局

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    .
    .
    .
    .
</ScrollView>

【讨论】:

    【解决方案3】:

    我终于找到了answer 来回答我的问题。您需要在扩展 InputMethodService 的类中使用此代码:

    @Override
    public void onComputeInsets(InputMethodService.Insets outInsets) {
         super.onComputeInsets(outInsets);
         if (!isFullscreenMode()) {
            outInsets.contentTopInsets = outInsets.visibleTopInsets;
         }
    }
    

    【讨论】:

      【解决方案4】:

      我认为 android:windowSoftInputMode 可以工作,但是像这样:

      android:windowSoftInputMode="adjustNothing"
      

      试试看。

      【讨论】:

        猜你喜欢
        • 2018-08-28
        • 2019-08-23
        • 1970-01-01
        • 1970-01-01
        • 2011-05-11
        • 1970-01-01
        • 1970-01-01
        • 2016-08-23
        • 2013-08-10
        相关资源
        最近更新 更多