ScrollView внутри ConstraintLayout не работает должным образом - PullRequest
0 голосов
/ 19 сентября 2019

ScrollView внутри ConstrainLayout, похоже, не работает как его обычное поведение.любой, кто сталкивался / пробовал этот тип структуры XML, пожалуйста, дайте предложение.

Вот файл XML,

 <?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">
    <ScrollView
        android:id="@+id/scrollview"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            tools:context=".fragment.HomeFragment">
        </androidx.constraintlayout.widget.ConstraintLayout>

    </ScrollView>

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="100dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/scrollview">

        </androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>

1 Ответ

0 голосов
/ 20 сентября 2019

Измените свой тег <ScrollView>, чтобы он соответствовал следующему:

<ScrollView
    android:id="@+id/scrollview"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:fillViewport="true"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toTopOf="@id/cardview">

И добавьте этот атрибут id к вашему CardView:

<androidx.cardview.widget.CardView
    android:id="@+id/cardview"

Без указания нижнего ограничения (и использования wrap_content для высоты), ScrollView будет иметь размер, достаточный для того, чтобы весь контент помещался внутри него, но обрезался родительским элементомConstraintLayout.Если все содержимое подходит, прокручивать нечего (даже если вы не видите всего этого, так как родитель обрезает его).

...