内部带有 NestedScrollView 的 NavigationView 不会抛出
NavigationView with a NestedScrollView inside does not fling
我有一个带有 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 中的滚动不流畅(不是 "fling")。换句话说,它会在您的手指在屏幕上时滚动,并在您移开手指时停止。
我尝试为 NestedScrollView 的第一个子项(LinearLayout)禁用嵌套滚动,但这没有用。
如有任何帮助,我们将不胜感激。
经过一些调查,我意识到导航视图的第一个子项是 RecyclerView。在该视图上禁用嵌套滚动可解决问题
ViewCompat.setNestedScrollingEnabled(navigationView.getChildAt(0), false);
还有另一种方法可以处理这种嵌套滚动;
如果您正在使用 nestedscroll 视图,并在其中使用一个或多个列表 views/recycler 视图,我们必须启用它;
yourlistview.setNestedScrollingEnabled(真);
现在应该可以了。
我有一个带有 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 中的滚动不流畅(不是 "fling")。换句话说,它会在您的手指在屏幕上时滚动,并在您移开手指时停止。
我尝试为 NestedScrollView 的第一个子项(LinearLayout)禁用嵌套滚动,但这没有用。
如有任何帮助,我们将不胜感激。
经过一些调查,我意识到导航视图的第一个子项是 RecyclerView。在该视图上禁用嵌套滚动可解决问题
ViewCompat.setNestedScrollingEnabled(navigationView.getChildAt(0), false);
还有另一种方法可以处理这种嵌套滚动; 如果您正在使用 nestedscroll 视图,并在其中使用一个或多个列表 views/recycler 视图,我们必须启用它; yourlistview.setNestedScrollingEnabled(真);
现在应该可以了。