1

This Questionを参照しましたが、回答がありません。だから基本的に私はBottomNavigationViewスクロール上に表示され、スクロール上に表示されます。 Recycler Viewをタッチしてスクロールするとうまく動作しますが、RecyclerViewをプログラムでスクロールすると機能しません。プログラムでスクロールしたときにCoordinatorLayout.Behaviourがトリガーされないようです。あるケースでは、RecyclerViewのスクロールバーを開いて、ある位置にスクロールしてください。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 

このようにスクロールして、どのように動作させることができますか?どんな助けでも謝辞を述べてくれてありがとう。

答えて

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ビューがあります。リサイクラの上にネストされた場合でも同じ問題です。 –

関連する問題