使用CollapsingToolbarLayout滚动PreferenceFragment

时间:2017-08-25 14:29:33

标签: android android-collapsingtoolbarlayout android-nestedscrollview preferencefragment

我正在PreferenceFragment中构建CollapsingToolbarLayout。问题是PreferenceFragment中的元素太多而且没有显示。似乎NestedScrollView没有使用这些片段。解决方案here对我不起作用,因为我不能出于其他原因使用compat库。我该如何解决这个问题?

代码:

<android.support.v4.widget.NestedScrollView 
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:fillViewport="true"
 app:layout_behavior="@string/appbar_scrolling_view_behavior"
 tools:showIn="@layout/activity_user_profile">

  <FrameLayout
    android:id="@+id/user_profile_content"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
</android.support.v4.widget.NestedScrollView>

1 个答案:

答案 0 :(得分:5)

好吧很久以后我发现PreferenceFragment使用ListView来显示其元素,而这些元素又无法在NestedScrollView内工作。我通过覆盖onViewCreated中的PreferenceFragment方法来解决它:

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    final ListView lv = (ListView) view.findViewById(android.R.id.list);
    if (lv != null)
        ViewCompat.setNestedScrollingEnabled(lv, true);
}

希望这有助于某人