2016-08-03 75 views
0

编辑2;这部分代码是OK的。检查我的答案,你可能有类似的问题,我希望这可以解决你的问题。当在嵌套片段中滚动RecyclerView时隐藏工具栏


我一直在检查很多有类似问题的帖子;他们让我接近,但我无法做到正确。我有一个MainActivity,主持Fragment加载在FrameLayoutid:fragment_container)。 我想在滚动时隐藏Toolbar,但这只发生在滚动NavigationDrawer时。当我滚动RecyclerView时,Toolbar不会隐藏。

Fragment包含ViewPager,并且每个ViewPagerFragment具有RecyclerView

我尝试了很多选择,这是最接近我打算的。

我想要做什么:

  • 隐藏工具栏滚动回收视图

这是怎么回事,现在时:

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

我现在main_activity布局:

<?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" /> 

编辑;出于某种原因,CoordinatorLayout不会显示在我刚刚发布的代码中。一切都被CoordinatorLayout包围!

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

上一个代码在这里。

</android.support.design.widget.CoordinatorLayout> 

回答

0

我的问题是在Fragment里面。我有这条线是杀死效果:

recyclerView.setNestedScrollingEnabled(false); 

我删除它,现在它工作很好。我一直在处理这个问题很久,希望能早点解决。希望这可以帮助那里的人。

相关问题