NavigationView 中的 ListView 不滚动

Posted

技术标签:

【中文标题】NavigationView 中的 ListView 不滚动【英文标题】:ListView inside NavigationView not scrolling 【发布时间】:2021-02-15 22:01:46 【问题描述】:

我一直试图让我的 NavigationView 可滚动 - 以便能够查看其中的所有项目。之前我使用菜单项来填充我的 NavigationView,但 NavigationView 没有滚动。在网上搜索了很多之后,使 NavigationView 可滚动的最流行的建议似乎是在 NavigationView 中使用 ListView。我试过了,但我的 NavigationView 仍然不滚动。

这是我的 XML:

<androidx.drawerlayout.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_
    android:layout_
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <com.google.android.material.navigation.NavigationView
        android:id="@+id/nav_view"
        android:layout_
        android:layout_
        android:layout_gravity="end"
        android:background="#1F262F"
        android:fitsSystemWindows="true"
        android:paddingTop="24dp"
        android:paddingBottom="0dp"
        app:itemIconTint="#FFFFFF"
        app:itemTextColor="#FFFFFF">

        <ListView
            android:id="@+id/navList"
            android:layout_
            android:layout_ />

    </com.google.android.material.navigation.NavigationView>

    <include
        layout="@layout/app_bar_main"
        android:layout_
        android:layout_ />

</androidx.drawerlayout.widget.DrawerLayout>

请提出一个解决方案,以便我可以向下滚动 NavigationView 以查看其中的所有项目。 请帮忙!

【问题讨论】:

【参考方案1】:

您是否尝试过使用ScrollView

另外,请注意ListView 现在有layout_width="wrap_content"

<androidx.drawerlayout.widget.DrawerLayout
    android:layout_
    android:layout_>

    <com.google.android.material.navigation.NavigationView
        android:layout_
        android:layout_>

        <ScrollView
            android:layout_
            android:layout_ >
            
            <ListView
                android:layout_
                android:layout_ />

        </ScrollView>            
    </com.google.android.material.navigation.NavigationView>
</androidx.drawerlayout.widget.DrawerLayout>

【讨论】:

不幸的是它不起作用。如上所述,添加 Scrollview 会使 ListView 的所有项目消失。

以上是关于NavigationView 中的 ListView 不滚动的主要内容,如果未能解决你的问题,请参考以下文章

为啥 NavigationView 中的动画从左上角开始?

嵌入在 NavigationView 中的 TabView 将内容下推

工具栏正在删除 NavigationView 中的后退按钮

如何为 NavigationView 中的项目设置自定义字体?

SwiftUI:检测 tvOS 上 NavigationView 中的选择更改

如何更改 NavigationView 中的分隔符颜色?