[更新]添加了样式和整个布局
我在NavigationView中有一个RecyclerView,但是它没有滚动显示整个项目列表。我尝试按照答案中的说明使用NestedScrollView,但没有成功
<android.support.v4.widget.NestedScrollView
android:layout_marginTop="30dp"
android:id="@+id/herdchatHerdsNestedSV"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/cats_recycler_view"
style="@style/catsRrecyclerView"
android:background="@color/colorAccent"
android:scrollbars="vertical"
android:transcriptMode="alwaysScroll"
android:nestedScrollingEnabled="true"/>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
但是这种方法不起作用,所以我现在正在尝试这种方法
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:id="@+id/navigation_view"
android:layout_gravity="start"
android:scrollbars="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/cats_recycler_view"
style="@style/catsRrecyclerView"
android:background="@color/colorAccent"
android:scrollbars="vertical"
android:transcriptMode="alwaysScroll"
android:nestedScrollingEnabled="true"/>
</android.support.design.widget.NavigationView>
样式
<style name="catsRrecyclerView">
<item name="android:layout_below">@id/pages_layout</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:scrollbars">vertical</item>
</style>
整个布局
<?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"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:id="@+id/navigation_view"
android:layout_gravity="start"
android:scrollbars="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/cats_recycler_view"
style="@style/catsRrecyclerView"
android:background="@color/colorAccent"
android:scrollbars="vertical"
android:transcriptMode="alwaysScroll"
android:nestedScrollingEnabled="true"/>
</android.support.design.widget.NavigationView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ProgressBar
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:id="@+id/loading_indicator"
style="@style/Widget.AppCompat.ProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
<TextView
style="@style/notification_textView"
android:id="@+id/notification_view"
android:text="No Data Found" />
<LinearLayout
android:id="@+id/pages_layout"
style="@style/pages_layout">
<Button
android:id="@+id/next_page"
style="@style/prev_page.next_page"/>
<TextView
android:id="@+id/page_number"
style="@style/page_number"
android:text="Page 1"/>
<Button
android:id="@+id/prev_page"
style="@style/prev_page" />
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
style="@style/recyclerView" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
垂直滚动条可见,但不滚动。这里有什么问题以及如何解决?
答案 0 :(得分:1)
问题是将NavigationView放置在布局的顶部,紧挨着根。在其他视图使布局工作正常之后,将位置更改为布局的末尾。
答案 1 :(得分:0)
尝试将RecyclerView的直接父级的高度更改为wrap_content
:)
在第一个示例中:
<android.support.v4.widget.NestedScrollView
android:layout_marginTop="30dp"
android:id="@+id/herdchatHerdsNestedSV"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The height of this one -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/cats_recycler_view"
style="@style/catsRrecyclerView"
android:background="@color/colorAccent"
android:scrollbars="vertical"
android:transcriptMode="alwaysScroll"
android:nestedScrollingEnabled="true"/>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
或者在第二个示例中(警告您,因为列表根目录小于屏幕尺寸,这可能会导致不可预测的结果,因为您的根视图与高度上的父视图不匹配)
<!-- The height of this one -->
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:id="@+id/navigation_view"
android:layout_gravity="start"
android:scrollbars="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/cats_recycler_view"
style="@style/catsRrecyclerView"
android:background="@color/colorAccent"
android:scrollbars="vertical"
android:transcriptMode="alwaysScroll"
android:nestedScrollingEnabled="true"/>
</android.support.design.widget.NavigationView>
看看是否有帮助?