Listview 不滚动 - 为啥会这样?

Posted

技术标签:

【中文标题】Listview 不滚动 - 为啥会这样?【英文标题】:Listview not scrolling - why so?Listview 不滚动 - 为什么会这样? 【发布时间】:2019-08-10 06:41:39 【问题描述】:

我无法使用列表视图滚动。我尝试过使用weight = 1focusable = truenestedScrollingEnabled = true 的线性布局(但我没有nestedscrollview,所以这对我来说没用)。提前致谢

<com.google.android.material.card.MaterialCardView
    android:id="@+id/materialCardView"
    android:layout_
    android:layout_
    android:layout_marginStart="5dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="5dp"
    android:backgroundTint="@android:color/transparent"
    app:cardCornerRadius="10dp"
    app:cardElevation="10dp"
    app:cardPreventCornerOverlap="false"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/topbtns">


    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_
        android:layout_
        android:background="@color/colorAccent">

        <ListView
            android:id="@+id/openedCallsLv"
            android:layout_
            android:layout_
            android:divider="@null"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/view" />

【问题讨论】:

这个问题可能是使用wrap_content 出现的。你能给0dp你的身高吗? MaterialCardViewListView 应该在 ConstraintLayout 内。 【参考方案1】:

请试试这个代码,让我知道它的工作与否

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_
    android:layout_
    android:background="@color/colorAccent">

    <ListView
        android:id="@+id/openedCallsLv"
        android:layout_
        android:layout_
        android:divider="@null"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/view" />

【讨论】:

【参考方案2】:

尝试将您的列表放入 constarintLayout:

<androidx.constraintlayout.widget.ConstraintLayout 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:layout_
android:layout_


    <com.google.android.material.card.MaterialCardView
        android:id="@+id/materialCardView"
        android:layout_
        android:layout_
        android:backgroundTint="@android:color/transparent"
        app:cardCornerRadius="10dp"
        app:cardElevation="10dp"
        app:cardPreventCornerOverlap="false"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.561"
        app:layout_constraintStart_toStartOf="parent"
        tools:layout_editor_absoluteY="191dp">
        <ListView
            android:layout_
            android:layout_
            android:background="@color/colorPrimaryDark" />

    </com.google.android.material.card.MaterialCardView>

【讨论】:

以上是关于Listview 不滚动 - 为啥会这样?的主要内容,如果未能解决你的问题,请参考以下文章

为啥当我在选中 CheckBox 的情况下滚动 ListView 时,它会变为未选中状态?

为啥偶尔会在 ListView 中加载错误的图像?

ScrollView 内不可滚动的 ListView

ListView为啥滚动listView时edittext数据丢失

为啥我的 ListView 项目重叠而不是滚动?

Listview.build 不在 Web 上滚动