#android #android-listview #android-scrollview
#Android #android-listview #android-scrollview
Вопрос:
Насколько мне известно, ListView должен прокручиваться без каких-либо настроек, в то время как мои элементы просто продолжают перекрываться поверх элементов listview. Я пытался:
- добавление android:nestedScrollingEnabled=»true» в дочерний элемент listview
- установка linearlayout поверх listview и установка веса макета равным 1
- добавление ScrollView поверх listview
но ничего не сработало.
Вот мой макет
<?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_width="match_parent"
android:layout_height="match_parent"
tools:context=".ListOfChatsActivity">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@ id/picture"
android:layout_width="120dp"
android:layout_height="120dp"
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_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_begin="126dp" />
<TextView
android:id="@ id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
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_width="wrap_content"
android:layout_height="wrap_content"
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_width="wrap_content"
android:layout_height="wrap_content"
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_width="match_parent"
android:layout_height="41dp"
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_width="match_parent"
android:layout_height="wrap_content"
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:
Вы должны установить высоту для вашего listview, отличную от wrap_content, иначе ваш listview захочет сделать ваш корневой макет прокручиваемым, если строк слишком много и они могут перекрываться.
Комментарии:
1. После небольшой настройки это сработало. Хотя, просто чтобы проверить, не исправлено ли это теперь для одного размера экрана?
2. Если вы зададите некоторое значение dp, да, это только для одного экрана. Вы должны использовать процентные значения с корнями ConstraintLayout или каким-либо другим приложением для проектирования.