为啥我的 ListView 项目重叠而不是滚动?
Posted
技术标签:
【中文标题】为啥我的 ListView 项目重叠而不是滚动?【英文标题】:Why do my ListView items overlap instead of scroll?为什么我的 ListView 项目重叠而不是滚动? 【发布时间】:2020-12-09 22:01:26 【问题描述】:据我所知,ListView 应该可以滚动而无需任何调整,而我的项目只是在 listview 边界上不断重叠。我试过了:
将 android:nestedScrollingEnabled="true" 添加到子列表视图 在列表视图上设置线性布局并将布局权重设置为 1 在列表视图之上添加 ScrollView但没有任何效果。
这是我的布局
<?xml version="1.0" encoding="utf-8"?>
<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_
tools:context=".ListOfChatsActivity">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/picture"
android:layout_
android:layout_
app:layout_constraintBottom_toTopOf="@+id/guideline3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:src="@drawable/slika1" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline3"
android:layout_
android:layout_
android:orientation="horizontal"
app:layout_constraintGuide_begin="126dp" />
<TextView
android:id="@+id/name"
android:layout_
android:layout_
android:layout_margin="15dp"
android:text="@string/name"
android:textColor="@color/logoBlue"
android:textSize="22sp"
app:layout_constraintEnd_toEndOf="@+id/picture"
app:layout_constraintStart_toStartOf="@+id/picture"
app:layout_constraintTop_toBottomOf="@+id/picture" />
<TextView
android:id="@+id/email"
android:layout_
android:layout_
android:layout_margin="10dp"
android:text="@string/email"
android:textColor="@color/logoBlue"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="@+id/name"
app:layout_constraintStart_toStartOf="@+id/name"
app:layout_constraintTop_toBottomOf="@+id/name" />
<TextView
android:id="@+id/phone"
android:layout_
android:layout_
android:layout_marginTop="10dp"
android:text="@string/phone"
android:textColor="@color/logoBlue"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="@+id/email"
app:layout_constraintStart_toStartOf="@+id/email"
app:layout_constraintTop_toBottomOf="@+id/email" />
<TextView
android:id="@+id/tptp"
android:layout_
android:layout_
android:background="@color/logoBlue"
android:text="@string/contacts"
android:textAlignment="center"
android:textColor="#fff"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline3" />
<ListView
android:id="@+id/list"
android:layout_
android:layout_
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tptp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
【问题讨论】:
【参考方案1】:你应该为你的列表视图设置一个高度而不是 wrap_content,否则如果行太多并且它们可能重叠,你的列表视图会想让你的根布局可滚动。
【讨论】:
经过一番调整后,它起作用了。虽然只是为了检查,但它现在不是针对一种屏幕尺寸固定的吗? 如果你放了一些 dp 值,是的,它只适用于一个屏幕。您应该在 ConstraintLayout 根或其他设计应用程序中使用百分比值。以上是关于为啥我的 ListView 项目重叠而不是滚动?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 ListView 使我的应用程序崩溃而不是列出我的条目?