EDIT 2; Dieser Teil des Codes war in Ordnung. Überprüfen Sie meine Antwort dafür, möglicherweise haben Sie ein ähnliches Problem und ich hoffe, dass dies Ihr Problem löst.Ausblenden der Werkzeugleiste beim Scrollen einer RecyclerView im verschachtelten Fragment
Ich habe viele Beiträge mit ähnlichen Problemen überprüft; Sie haben mich nahe gebracht, aber ich bin nicht in der Lage, es richtig zu machen. Ich habe eine MainActivity
, die eine Fragment
geladen in der FrameLayout
(id:fragment_container
) hostet. Ich möchte die Toolbar
beim Scrollen ausblenden, aber das passiert nur, wenn ich die NavigationDrawer
scrollen. Wenn ich die RecyclerView
scrollen, versteckt sich die Toolbar
nicht.
Die Fragment
enthält eine ViewPager
, und jede ViewPagerFragment
hat eine RecyclerView
.
Ich habe viele Alternativen ausprobiert und dies ist die, die am ehesten meinen Vorstellungen entspricht.
Was ich tun möchte:
- Symbolleiste ausblenden, wenn Recycler Ansicht scrollen
Was jetzt los ist:
Mein aktuelles main_activity Layout:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="16dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:layout_scrollFlags="scroll|enterAlways">
<Button
android:id="@+id/login_button"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="end"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:background="@drawable/ic_account_circle_white_24dp" />
<Button
android:id="@+id/favourites_button"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="end"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:background="@drawable/favourite_button" />
<Button
android:id="@+id/bookmarked_button"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="end"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:background="@drawable/bookmarked_button" />
<Button
android:id="@+id/history_button"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="end"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:background="@drawable/ic_history_white_24dp" />
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<android.support.design.widget.NavigationView
android:id="@+id/navigationView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
app:menu="@menu/menu" />
</android.support.v4.widget.DrawerLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab_pressed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:src="@drawable/favourite_button"
app:fabSize="mini"
app:layout_anchor="@id/fragment_container"
app:layout_anchorGravity="bottom|right|end" />
EDIT; Aus irgendeinem Grund wird das CoordinatorLayout nicht in dem Code angezeigt, den ich gerade gepostet habe. Alles ist mit einem CoordinatorLayout umgeben!
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
Vorherige Code geht hier.
</android.support.design.widget.CoordinatorLayout>