2016-08-03 43 views
0

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:

http://gifmaker.cc/PlayGIFAnimation.php?folder=2016080211dGOklkBglH6HPrbVKq2rLE&file=output_lp5KmP.gif

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> 

Antwort

0

Mein Problem war innerhalb der Fragment. Ich hatte diese Linie, die den Effekt tötete:

recyclerView.setNestedScrollingEnabled(false); 

Ich entfernte es und jetzt funktioniert es großartig. Ich habe mich schon so lange damit beschäftigt, ich wünschte, ich hätte es früher bekommen. Hoffe, das hilft jemandem da draußen.