如何重置NavigationView滚动位置

时间:2017-05-03 07:08:24

标签: android navigation-drawer drawerlayout

我有如下导航视图,

<android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        style="@style/NavDrawer"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:itemBackground="@android:color/transparent"
        app:itemTextColor="@color/drawer_item">

        <ExpandableListView
            android:id="@+id/list_navigation_menu"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="@dimen/list_view_marigin_top"
            android:divider="@android:color/transparent"
            android:dividerHeight="@dimen/list_view_divider_height"
            android:fitsSystemWindows="true"
            android:listSelector="@android:color/transparent"
            android:visibility="gone" />

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="@dimen/list_view_marigin_top"
            android:fitsSystemWindows="true" />
    </android.support.design.widget.NavigationView>

如何让NavigationView始终以其原始&#34;滚动位置,只要它打开,所以无论先前滚动位置在哪里,第一个菜单项始终可见。

我尝试了以下3行/解决方案,但它没有工作:

  ((NavigationMenuView)((NavigationView)mViewHolder.mNavigationView).getChildAt(0)).scrollToPosition(0);

    mViewHolder.mNavigationView.scrollTo(0,0);

    mViewHolder.mNavigationView.setVerticalScrollbarPosition(View.SCROLLBAR_POSITION_DEFAULT);

1 个答案:

答案 0 :(得分:1)

这个解决方案对我有用 。RecyclerView.getLayoutManager()scrollToPosition(0);