我有一个带有NestedScrollView的NavigationView,它包含另一个NavigationView,用于为NavigationView添加页脚。布局代码如下:
<include layout="@layout/main_content"/>
<android.support.design.widget.NavigationView ...>
<android.support.v4.widget.NestedScrollView
...
android:fillViewport="true"
android:scrollbars="vertical">
<LinearLayout
...
android:orientation="vertical">
<android.support.design.widget.NavigationView
...
app:elevation="0dp"
app:headerLayout="@layout/nav_header"
app:menu="@menu/nav_menu">
</android.support.design.widget.NavigationView>
<LinearLayout
android:id="@+id/spacer_to_bottom"
...
android:layout_height="0dp"
android:layout_weight="1">
</LinearLayout>
<include layout="@layout/nav_footer"></include>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.NavigationView>
问题是NavigationDrawer中的滚动不顺畅(不“甩”)。换句话说,它会在您的手指在屏幕上时滚动,并在您移开手指时停止。
我尝试为NestedScrollView的第一个子节点(LinearLayout)禁用嵌套滚动但这不起作用。
任何帮助将不胜感激。
答案 0 :(得分:3)
经过一些调查后,我意识到导航视图的第一个孩子是RecyclerView。禁用该视图上的嵌套滚动可解决问题
ViewCompat.setNestedScrollingEnabled(navigationView.getChildAt(0), false);
答案 1 :(得分:0)
还有另一种处理这种嵌套滚动的方法; 如果您正在使用nestedscroll视图,并在其中使用一个或多个列表视图/回收站视图,我们必须启用此功能; yourlistview.setNestedScrollingEnabled(真);
现在应该可以了。