【问题标题】:Keyboard Hidden crashes on android LollipopAndroid Lollipop 上的键盘隐藏崩溃
【发布时间】:2016-10-19 04:21:28
【问题描述】:

有人解决android 5.0 上键盘隐藏崩溃的问题吗?我用相同的代码在 4.4.2 上试过,但没有发生。

这是我的活动设置:

<activity
        android:name=".activity.MainActivity"
        android:configChanges="orientation|screenSize"
        android:hardwareAccelerated="true"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.NoActionBar">

这是冻结后的日志

 06-17 20:43:57.823 32593-32604/org.mydev.app.debug W/art:暂停所有线程耗时:14.210ms
06-17 20:43:59.503 32593-32604/org.mydev.app.debug W/art:暂停所有线程耗时:195.356ms
06-17 20:44:02.633 32593-931/org.mydev.app.debug E/UncaughtException: java.lang.NullPointerException: 尝试从空对象上的“java.lang.Object maps.Wd$cc”字段读取参考
                                                                                  在 maps.W.d.a(未知来源)
                                                                                  在 maps.W.d.b(未知来源)
                                                                                  在 maps.X.J.a(未知来源)
                                                                                  在 maps.ac.i$d.a(未知来源)
                                                                                  在 maps.ac.i.a(未知来源)
                                                                                  在 maps.ac.n.a(未知来源)
                                                                                  在 maps.X.A.a(未知来源)
                                                                                  在 maps.X.H.a(未知来源)
                                                                                  在 maps.X.H.b(未知来源)
                                                                                  在 maps.X.y$f.f(未知来源)
                                                                                  在 maps.X.y$f.run(未知来源)
06-17 20:44:02.673 32593-32593/org.mydev.app.debug I/Choreographer:跳过 557 帧!应用程序可能在其主线程上做了太多工作。

【问题讨论】:

  • 尝试在activity标签中添加android:windowSoftInputMode="stateHidden"
  • 非常感谢。但它仍然崩溃了。应用程序冻结然后崩溃。
  • 你能发布崩溃日志吗?
  • 我已经用日志更新了问题。请看一下:-)
  • 在我的应用程序中,viewpager 中有 5 个片段。两个片段包含谷歌地图。我认为这是导致此异常的原因。

标签: android android-5.0-lollipop android-softkeyboard


【解决方案1】:

试试这个。

<activity
        android:windowSoftInputMode="stateHidden"
        android:name=".activity.MainActivity"
        android:configChanges="orientation|screenSize"
        android:hardwareAccelerated="true"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.NoActionBar">

否则使用此方法隐藏相对于 EditText 的键盘。

public static void hideKeyboadOnView(Context context, View view) {
    InputMethodManager inputManager = (InputMethodManager)
            context.getSystemService(Context.INPUT_METHOD_SERVICE);

    inputManager.hideSoftInputFromWindow(
            view.getWindowToken(), 0);

   /* inputManager.hideSoftInputFromWindow(activity.getCurrentFocus()
                    .getWindowToken(),
            InputMethodManager.HIDE_NOT_ALWAYS);*/
}

并在此方法中传递edittext视图。

【讨论】:

    【解决方案2】:

    我通过添加 android:windowSoftInputMode="adjustPan" 解决了这个问题。谢谢大家指导我。

    【讨论】:

      猜你喜欢
      • 2013-01-29
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 2014-08-07
      • 2016-11-21
      • 2017-02-16
      • 1970-01-01
      相关资源
      最近更新 更多