使用 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);
}
希望这对某人有所帮助
我正在尝试在 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);
}
希望这对某人有所帮助