使用 CollapsingToolbarLayout 滚动 PreferenceFragment

Scrolling PreferenceFragment with CollapsingToolbarLayout

我正在尝试在 CollapsingToolbarLayout 中构建 PreferenceFragment。问题是PreferenceFragment里面的元素太多了,没有显示出来。似乎 NestedScrollView 不适用于这些片段。解决方案 对我不起作用,因为由于其他原因我无法使用兼容库。我该如何解决这个问题?

代码:

<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>

好吧,很长一段时间后我发现 PreferenceFragment 使用 ListView 来显示其元素,而这些元素在 NestedScrollView 中不起作用。我通过重写 PreferenceFragment:

中的 onViewCreated 方法解决了这个问题
@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);
}

希望这对某人有所帮助