【问题标题】:RecyclerView behavior - Goes empty when keyboard is opened/closedRecyclerView 行为 - 打开/关闭键盘时变空
【发布时间】:2016-12-28 09:40:11
【问题描述】:

我已经用SearchViewFilterable 实现了RecyclerView;来自v7 的所有课程。现在有这种令人讨厌的行为。无论何时启动或关闭键盘,RecyclerView 的内容都会变为空白。计数仍然正确,但视图为空。我的猜测,它与Layout 大小变化有关。这种行为是正常的还是有问题?如何处理?我可以显示代码,但不太清楚哪一部分是相关的,所以告诉我我可以在这里添加什么?

【问题讨论】:

    标签: android android-recyclerview searchview android-filterable


    【解决方案1】:

    在输入问题时,从类似问题中找到this

    请在清单中的活动中添加以下行。希望它有效。 android:windowSoftInputMode="adjustPan"

    更准确地说,在将要打开键盘的AndroidMenifest.xml 中的activity 标签中添加android:windowSoftInputMode="adjustPan"

    示例:

    <activity
            android:name=".FManagerActivity"
            android:label="@string/app_name"
            android:windowSoftInputMode="adjustPan"
            android:theme="@style/AppTheme.Light.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    

    它基本上是当键盘打开或关闭时 Activity 做出反应的行为。 adjustPan 告诉键盘覆盖活动视图而不干扰其内容。否则,当键盘打开时,活动的大小也会发生变化,这会使内容消失,因为在隐式操作期间和之后不会调用 notifyDatasetChanged()

    【讨论】:

      【解决方案2】:

      不太清楚为什么,但将其设置为 SOFT_INPUT_ADJUST_RESIZE 为我解决了这个问题:

      activity?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
      

      【讨论】:

      • 设置SOFT_INPUT_ADJUST_RESIZE 将调整活动的大小,这将导致活动的重新创建(除非使用android:configChanges="screenSize" 手动处理)。您必须保存活动状态并保留在onCreate
      猜你喜欢
      • 2021-10-16
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多