1

我提到This Question但沒有答案適合我。所以基本上我有一個BottomNavigationView隱藏向下滾動並顯示在向上滾動。當我通過觸摸滾動Recycler View時它工作正常,但當我以編程方式滾動RecyclerView時不起作用。看起來像編程式滾動時不會觸發CoordinatorLayout.Behaviour。在某些情況下,我必須打開包含RecyclerView的片段,並滾動到某個位置,並且BottomNavigationView隱藏它必須在用戶向上滾動時返回這意味着我不想隱藏BottomNavigationView的可見性只是隱藏在滾動上滾動編程或通過觸摸。滾動回收站查看以編程方式不更新CoordinatorLayout.Behaviour同時通過觸摸更新滾動它CoordinatorLayout.Behaviour

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.kliff.digitaldwarka.activity.MainActivity"> 
    <android.support.design.widget.CoordinatorLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <android.support.design.widget.AppBarLayout 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:id="@+id/myAppBar" 
      app:elevation="0dp" 
      android:theme="@style/AppTheme.AppBarOverlay"> 
      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="?attr/colorPrimary" 
       app:contentInsetStart="0dp" 
       app:popupTheme="@style/AppTheme.PopupOverlay"/> 
     </android.support.design.widget.AppBarLayout> 
     <FrameLayout 
      android:id="@+id/container" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

     <android.support.design.widget.BottomNavigationView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:itemBackground="@android:color/white" 
      android:id="@+id/bottom_nav" 
      android:layout_gravity="bottom" 
      app:menu="@menu/bottom_nav_menu"/> 
    </android.support.design.widget.CoordinatorLayout> 
    <com.appeaser.sublimenavigationviewlibrary.SublimeNavigationView 
    android:id="@+id/nav_view" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:layout_gravity="start" 
    app:snvHeaderLayout="@layout/nav_header" 
    app:snvMenu="@menu/nav_menu" 
    style="@style/NavigationViewStyle" 
    app:snvItemTextColor="#555555" 
    app:snvSubheaderItemTextColor="#555555" 
    app:snvItemIconTint="#555555" 
    app:snvBadgeTextColor="#555555" 
    app:snvHintTextColor="#757575" 
    app:snvHintTypefaceStyle="normal" 
    app:snvBadgeTypefaceStyle="normal" 
    app:snvSubheaderItemTypefaceStyle="normal" 
    app:snvItemTypefaceStyle="normal" /> 
</android.support.v4.widget.DrawerLayout> 

fragment_category.xml

<android.support.v7.widget.CardView 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:cardElevation="1dp" 
    app:cardUseCompatPadding="true"> 
    <android.support.v7.widget.RecyclerView 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     android:id="@+id/recycler_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scrollbars="vertical" /> 
</android.support.v7.widget.CardView> 

代碼滾動

mRecyclerView.getLayoutManager().scrollToPosition(34); //specific postion 

通過滾動這種方式我如何實現行爲。任何幫助將感謝appricited。

回答

0

請嘗試以下代碼。它爲我工作。我正在使用BottomBar Library

public void showBottomBar(boolean show) { 
    CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) mBottomBar.getLayoutParams(); 
    CoordinatorLayout.Behavior behavior2 = params.getBehavior(); 
    if (behavior2 != null) { 
     behavior2.onNestedFling(coordinator, mBottomBar, null, 0, show ? -10000 : 10000, true); 
    } 
} 
+0

我不想以編程方式隱藏底部欄。我應該按照相同的滾動反應,通過觸摸滾動或程序 –

+0

@ zsmb13謝謝:) –

1

我使用此代碼,請其是否適合您查一下: -

activity_mail.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.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" 
    android:fitsSystemWindows="true" 
    tools:context="com.example.constraintlayout.ScrollingActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/app_bar_height" 
     android:fitsSystemWindows="true" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/toolbar_layout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true" 
      app:contentScrim="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/AppTheme.PopupOverlay" /> 

     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

    <include layout="@layout/content_scrolling" /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/fab_margin" 
     app:layout_anchor="@id/app_bar" 
     app:layout_anchorGravity="bottom|end" 
     app:srcCompat="@android:drawable/ic_dialog_email" /> 

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

content_scrolling.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.NestedScrollView 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" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="com.example.constraintlayout.ScrollingActivity" 
    tools:showIn="@layout/activity_scrolling"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scrollbars="vertical" /> 

</android.support.v4.widget.NestedScrollView> 
+0

RecyclerView也有它自己的嵌套Srcoll視圖..如果我把嵌套在回收站上仍然是同樣的問題.. –