Панель приложения не прокручивается иногда после переключения фрагмента - PullRequest
0 голосов
/ 19 февраля 2019

Моя панель приложений иногда не прокручивается, когда я переключаюсь на другой фрагмент.

Это мой код и макет.

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

Вот и все, это все, чтоЯ так и сделал, но до сих пор не знаю, почему панель приложений иногда не прокручивается, когда я переключаюсь на новый фрагмент и возвращаюсь назад.

Любая помощь приветствуется, спасибо.

...