2 votes

ScrollView dans ConstraintLayout ne fonctionne pas

J'ai un ScrollView et quelques autres vues en haut et en bas, le tout dans un ConstraintLayout. J'ai essayé de nombreuses façons, sans succès, ScrollView prend tout l'espace au lieu de fournir un défilement et si je fournis une contrainte à la vue inférieure, alors cette vue n'est pas visible.

Fichier XML :

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >

        <!-- @style/Dialog.Title contains margins and font settings -->
        <TextView
            android:id="@+id/title_text_view"
            style="@style/Dialog.Title"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="0dp"
            android:gravity="center_vertical"
            android:text="@string/device_settings_quality_dialog_title"
            app:layout_constraintBottom_toTopOf="@+id/quality_group_container"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            />

            <!-- @style/Dialog.Content contains only margins -->
            <ScrollView
                android:id="@+id/quality_group_container"
                style="@style/Dialog.Content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/title_text_view"
                app:layout_constraintBottom_toTopOf="@+id/cancel_button"
                >

                <RadioGroup
                    android:id="@+id/quality_radio_group"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    >
                    <RadioButton
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Option 1">
                    <RadioButton
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Option 2">
                    <RadioButton
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Option 3">
                    <RadioButton
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Option 4">
                    <RadioButton
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Option 5">
                    <RadioButton
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Option 6">
                    <RadioButton
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Option 7">
                    <RadioButton
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Option 8">
                </RadioGroup>
            </ScrollView>

        <!-- @style/Dialog.Actions.Button contains margins and paddings -->
        <Button
            android:id="@+id/cancel_button"
            style="@style/Dialog.Actions.Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/device_settings_name_cancel_button_label"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            />

    </android.support.constraint.ConstraintLayout>

</android.support.v7.widget.CardView>

enter image description here

Veuillez m'aider à résoudre le problème en utilisant ConstraintLayout.

0voto

NIKHIL NEDIYODATH Points 748

J'espère que ce code vous sera utile

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- @style/Dialog.Title contains margins and font settings -->
    <TextView
        android:id="@+id/title_text_view"
        style="@style/Dialog.Title"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginBottom="0dp"
        android:gravity="center_vertical"
        android:text="@string/device_settings_quality_dialog_title"
        app:layout_constraintBottom_toTopOf="@+id/quality_group_container"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        />

    <!-- @style/Dialog.Content contains only margins -->
    <ScrollView
        android:id="@+id/quality_group_container"
        style="@style/Dialog.Content"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/title_text_view"
        app:layout_constraintBottom_toTopOf="@+id/cancel_button">

        <RadioGroup
            android:id="@+id/quality_radio_group"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Option 1"/>
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Option 2"/>
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Option 3"/>
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Option 4"/>
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Option 5"/>
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Option 6"/>
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Option 7"/>
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Option 8"/>
        </RadioGroup>
    </ScrollView>

    <!-- @style/Dialog.Actions.Button contains margins and paddings -->
    <Button
        android:id="@+id/cancel_button"
        style="@style/Dialog.Actions.Button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/device_settings_name_cancel_button_label"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"/>

</android.support.constraint.ConstraintLayout>

Ici, j'avais défini les attributs du scrollview comme suit

android:layout_height="0dp"
android:layout_weight="1"

Cela allouera tout l'espace restant pour le scrollview.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X