Моя панель приложений иногда не прокручивается, когда я переключаюсь на другой фрагмент.
Это мой код и макет.
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"
.
Вот и все, это все, чтоЯ так и сделал, но до сих пор не знаю, почему панель приложений иногда не прокручивается, когда я переключаюсь на новый фрагмент и возвращаюсь назад.
Любая помощь приветствуется, спасибо.