问题
I have a problem with PreferenceFragment and CollapsingToolbarLayout. I have a base layout:
<android.support.design.widget.CoordinatorLayout 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:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.base.BaseActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbarLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/ctlLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"></android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:nestedScrollingEnabled="true"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabFav"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="85dp"
android:src="@android:drawable/ic_menu_save"
app:layout_anchor="@id/appbarLayout"
app:layout_anchorGravity="bottom|right|end"
android:visibility="gone" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabShare"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/fab_margin"
android:src="@android:drawable/ic_menu_share"
app:borderWidth="0dp"
app:layout_anchor="@id/appbarLayout"
app:layout_anchorGravity="bottom|right|end"
android:visibility="gone" />
<fragment
android:id="@+id/search_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.eventum.raedictionary.fragments.SearchFragment"
tools:layout="@layout/fragment_search"/>
The problem is when I inflate the Framelayout with a PreferenceFragment the scroll doesn't work but with a normal Fragment works properly.
BaseSettingFragment settingsFragment = new BaseSettingFragment();
fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.setCustomAnimations(R.transition.fade_in, R.transition.fade_out);
fragmentTransaction.replace(R.id.fragment_container, settingsFragment);
fragmentTransaction.commit();
I haven't found any solutions for this problem, can anyone help me?
Thank you in advance.
PD: Sorry for my English.
回答1:
PreferenceFragment is based on ListView, which does not support the nested scrolling APIs required for CollapsingToolbarLayout. You can instead use the Preference Support Library and PreferenceFragmentCompat, which is based on RecyclerView and does support the nested scrolling APIs required.
来源:https://stackoverflow.com/questions/33984301/preferencefragment-no-scroll-in-collapsingtoolbarlayout