PreferenceFragment no scroll in CollapsingToolbarLayout

感情迁移 提交于 2020-01-01 09:17:53

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!