我有如下的navigationView,

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


每当打开导航视图时,如何使它始终从其“原始”滚动位置开始,因此无论以前将滚动位置留在何处,第一个菜单项始终可见。

我尝试了以下3行/解决方案,但没有成功:

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

    mViewHolder.mNavigationView.scrollTo(0,0);

    mViewHolder.mNavigationView.setVerticalScrollbarPosition(View.SCROLLBAR_POSITION_DEFAULT);

最佳答案

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

关于android - 如何重置NavigationView滚动位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43753389/

10-09 04:24