切换片段后,Appbar有时无法滚动

时间:2019-02-19 03:48:38

标签: android material-design android-coordinatorlayout appbar

当我切换到另一个片段时,有时我的AppBar无法滚动。

这是我的代码和布局。

BaseActivity.xml

<androidx.coordinatorlayout.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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activity.drawer.BaseDrawerActivity">
    <com.google.android.material.appbar.AppBarLayout
            android:id="@+id/appBarDrawer"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppBaseTheme.AppBarOverlay"
            app:elevation="0dp">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/colorPrimary"
            app:layout_scrollFlags="scroll|snapMargins">

            <TextView
                android:id="@+id/tvBaseDrawerToolbarTitle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                ... />
        </androidx.appcompat.widget.Toolbar>

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/clActivity2Header"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            android:visibility="gone"
            app:layout_scrollFlags="scroll|snapMargins" >
            ...
        </androidx.constraintlayout.widget.ConstraintLayout>
        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/clActivity1Header"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="gone"
            app:layout_scrollFlags="scroll|snapMargins" >
            ...
        </androidx.constraintlayout.widget.ConstraintLayout>
        <include
            android:id="@+id/clActivity1SubHeader"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="gone"/>

    </com.google.android.material.appbar.AppBarLayout>

    <include
        layout="@layout/activity_base_drawer_content" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

BaseActivity.java

class BaseActivity {

    //... some stuffs here

    private void showFirstFragment() {
        // .. fragmentTransaction stuff
        clActivity1Header.setVisibility(View.GONE);
        clActivity1SubHeader.setVisibility(View.GONE);
    }

    private void showSecondFragment() {
        // .. fragmentTransaction stuff
        clActivity1Header.setVisibility(View.GONE);
        clActivity1SubHeader.setVisibility(View.GONE);
    }

    private void showMainFragment() {
        // .. fragmentTransaction stuff
        clActivity1Header.setVisibility(View.VISIBLE);
        clActivity1SubHeader.setVisibility(View.VISIBLE);
    }
}

此外,activity_base_drawer_content父级布局已经包含app:layout_behavior="@string/appbar_scrolling_view_behavior"

就是这样,这是我到目前为止所做的全部,但是我仍然真的不知道为什么当我切换到新片段并返回时,有时AppBar有时不滚动。

感谢您的帮助,谢谢。

0 个答案:

没有答案