约束布局和滚动视图无法正常工作

3
我正在尝试实现我的Android应用程序的布局。在设计师中,我可以看到一切都很好,但是当我模拟(或将该应用程序安装在我的手机上)时,外观完全不同。我附上了它在设计师中的样子。我看到一切都很好(正如我所希望的),有一个TextView、一个ScrollView和一个按钮,用于关闭Diaolog。
图片的蓝图视图
当我进行模拟时,情况完全不同:无论怎样使用“match_parent”、“wrap_content”等进行调整,都无法得到良好的结果。我看到的结果完全不同。
在设备上进行模拟
我将此布局应用于对话框中,但我不明白为什么我不能获得一个简单的包含TextView、ScrollView或CardView以及一个按钮的布局。
以下是用于显示对话框的代码片段:
public void Display_Data_CardView(int mode){
    Data_CardView_Dialog = new Dialog(this);
    Data_CardView_Dialog.getWindow();
    Data_CardView_Dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    Data_CardView_Dialog.setCancelable(false);
    try{
        if (mode == NO_IN_ANIM){
            Data_CardView_Dialog.getWindow().getAttributes().windowAnimations = R.style.DialogTheme2_no_in_anim;
        }else Data_CardView_Dialog.getWindow().getAttributes().windowAnimations = R.style.DialogTheme2;
    }catch (Exception e){

    }
    Data_CardView_Dialog.setContentView(R.layout.data_view_cards);


    Button btnOK = (Button) Data_CardView_Dialog.findViewById(R.id.btnCardViewOK);
    btnOK.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Data_CardView_Dialog.dismiss();
        }
    });
    Data_CardView_Dialog.show();
}

以下是我的 XML 布局

    <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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:id="@+id/clDataViewCards"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="8dp">

    <TextView
        android:id="@+id/tvTitoloDataCardView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginBottom="8dp"
        android:text="Dati Letti"
        android:textSize="16sp"
        android:textStyle="bold|italic"
        app:layout_constraintBottom_toTopOf="@+id/glHoriz1"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <android.support.constraint.Guideline
        android:id="@+id/glHoriz1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.1" />

    <ScrollView
        android:id="@+id/svDataViewCards"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:fillViewport="true"
        app:layout_constraintBottom_toTopOf="@+id/glHoriz2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/glHoriz1">

        <LinearLayout
            android:id="@+id/item_wrapper_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingBottom="8dp">

            <android.support.v7.widget.CardView
                android:id="@+id/item_cardview_1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:cardCornerRadius="4dp"
                app:cardUseCompatPadding="true">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <ImageView
                        android:id="@+id/ivCard1"
                        android:layout_width="36dp"
                        android:layout_height="36dp"
                        android:layout_margin="8dp"
                        android:src="@drawable/info_icon"
                        tools:ignore="contentDescription" />

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="4dp"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/textView11"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="4dp"
                            android:text="TextView 1" />

                        <TextView
                            android:id="@+id/textView12"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="4dp"
                            android:text="TextView 2" />

                    </LinearLayout>
                </LinearLayout>

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

            <android.support.v7.widget.CardView
                android:id="@+id/item_cardview_2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:cardCornerRadius="4dp"
                app:cardUseCompatPadding="true">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <ImageView
                        android:id="@+id/ivCard2"
                        android:layout_width="36dp"
                        android:layout_height="36dp"
                        android:layout_margin="8dp"
                        android:src="@drawable/info_icon"
                        tools:ignore="contentDescription" />

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="4dp"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/textView21"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="4dp"
                            android:text="TextView 3" />

                        <TextView
                            android:id="@+id/textView22"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="4dp"
                            android:text="TextView 4" />

                    </LinearLayout>
                </LinearLayout>

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

            <android.support.v7.widget.CardView
                android:id="@+id/item_cardview_3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:cardCornerRadius="4dp"
                app:cardUseCompatPadding="true">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <ImageView
                        android:id="@+id/ivCard3"
                        android:layout_width="36dp"
                        android:layout_height="36dp"
                        android:layout_margin="8dp"
                        android:src="@drawable/info_icon"
                        tools:ignore="contentDescription" />

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="4dp"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/textView31"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="4dp"
                            android:text="TextView 5" />

                        <TextView
                            android:id="@+id/textView32"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="4dp"
                            android:text="TextView 6" />

                    </LinearLayout>
                </LinearLayout>

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

            <android.support.v7.widget.CardView
                android:id="@+id/item_cardview_4"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:cardCornerRadius="4dp"
                app:cardUseCompatPadding="true">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <ImageView
                        android:id="@+id/ivCard4"
                        android:layout_width="36dp"
                        android:layout_height="36dp"
                        android:layout_margin="8dp"
                        android:src="@drawable/info_icon"
                        tools:ignore="contentDescription" />

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="4dp"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/textView41"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="4dp"
                            android:text="TextView 7" />

                        <TextView
                            android:id="@+id/textView42"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="4dp"
                            android:text="TextView 8" />

                    </LinearLayout>
                </LinearLayout>

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

            <android.support.v7.widget.CardView
                android:id="@+id/item_cardview_5"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:cardCornerRadius="4dp"
                app:cardUseCompatPadding="true">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <ImageView
                        android:id="@+id/ivCard5"
                        android:layout_width="36dp"
                        android:layout_height="36dp"
                        android:layout_margin="8dp"
                        android:src="@drawable/info_icon"
                        tools:ignore="contentDescription" />

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="4dp"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/textView51"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="4dp"
                            android:text="TextView 9" />

                        <TextView
                            android:id="@+id/textView52"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="4dp"
                            android:text="TextView 10" />

                    </LinearLayout>
                </LinearLayout>

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

            <android.support.v7.widget.CardView
                android:id="@+id/item_cardview_6"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:cardCornerRadius="4dp"
                app:cardUseCompatPadding="true">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <ImageView
                        android:id="@+id/ivCard6"
                        android:layout_width="36dp"
                        android:layout_height="36dp"
                        android:layout_margin="8dp"
                        android:src="@drawable/info_icon"
                        tools:ignore="contentDescription" />

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="4dp"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/textView61"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="4dp"
                            android:text="TextView 11" />

                        <TextView
                            android:id="@+id/textView62"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="4dp"
                            android:text="TextView 12" />

                    </LinearLayout>
                </LinearLayout>

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

            <android.support.v7.widget.CardView
                android:id="@+id/item_cardview_7"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:cardCornerRadius="4dp"
                app:cardUseCompatPadding="true">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <ImageView
                        android:id="@+id/ivCard7"
                        android:layout_width="36dp"
                        android:layout_height="36dp"
                        android:layout_margin="8dp"
                        android:src="@drawable/info_icon"
                        tools:ignore="contentDescription" />

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="4dp"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/textView71"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="4dp"
                            android:text="TextView 13" />

                        <TextView
                            android:id="@+id/textView72"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="4dp"
                            android:text="TextView 14" />

                    </LinearLayout>
                </LinearLayout>

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

            <android.support.v7.widget.CardView
                android:id="@+id/item_cardview_8"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:cardCornerRadius="4dp"
                app:cardUseCompatPadding="true">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <ImageView
                        android:id="@+id/ivCard8"
                        android:layout_width="36dp"
                        android:layout_height="36dp"
                        android:layout_margin="8dp"
                        android:src="@drawable/info_icon"
                        tools:ignore="contentDescription" />

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="4dp"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/textView81"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="4dp"
                            android:text="TextView 15" />

                        <TextView
                            android:id="@+id/textView82"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="4dp"
                            android:text="TextView 16/>

                    </LinearLayout>
                </LinearLayout>

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


        </LinearLayout>
    </ScrollView>

    <android.support.constraint.Guideline
        android:id="@+id/glHoriz2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.9" />

    <Button
        android:id="@+id/btnCardViewOK"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:text="@string/Dialogo_View_Data_Cards_Bottone_OK"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/glHoriz2" />
</android.support.constraint.ConstraintLayout>

有人可以帮我理解我的错误在哪里吗?非常感谢。
编辑:我找到了一个解决方案:我将ScrollView嵌套在LinearLayout中,并为该LinearLayout指定了一个“匹配约束”宽度。在Java中,当我创建对话框时,我通过改变第一个TextView的宽度来改变对话框的宽度,然后我改变ScrollView的高度,就得到了我想要的效果。我不知道这是否是正确的方法,但经过多次尝试,这对我很好。

在编程中,将ScrollView的layout_width设置为0dp - Sniffer
@Sniffer,感谢您的回复。我已经尝试使用0dp,现在我可以看到布局与TextBox + srollview + button的期望相同。唯一剩下的问题是现在滚动视图中的卡片视图不像设计师那样,但文本被刮在一个小空间中。我想我需要尝试管理卡片视图内的textview。 - Roby
2个回答

0

这对我来说没问题:

<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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:id="@+id/clDataViewCards"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="8dp">

    <TextView
        android:id="@+id/tvTitoloDataCardView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginBottom="8dp"
        android:text="Dati Letti"
        android:textSize="16sp"
        android:textStyle="bold|italic"
        app:layout_constraintBottom_toTopOf="@+id/glHoriz1"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <android.support.constraint.Guideline
        android:id="@+id/glHoriz1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.1" />

    <ScrollView
        android:id="@+id/svDataViewCards"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:fillViewport="true"
        app:layout_constraintBottom_toTopOf="@+id/glHoriz2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/glHoriz1">

    <LinearLayout
        android:id="@+id/item_wrapper_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingBottom="8dp">

    <android.support.v7.widget.CardView
        android:id="@+id/item_cardview_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardCornerRadius="4dp"
        app:cardUseCompatPadding="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/ivCard1"
                android:layout_width="36dp"
                android:layout_height="36dp"
                android:layout_margin="8dp"
                android:src="@drawable/info_icon"
                tools:ignore="contentDescription" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="4dp"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/textView11"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="4dp"
                    android:text="TextView 1" />

                <TextView
                    android:id="@+id/textView12"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:text="TextView 2" />

            </LinearLayout>
        </LinearLayout>

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

    <android.support.v7.widget.CardView
        android:id="@+id/item_cardview_2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardCornerRadius="4dp"
        app:cardUseCompatPadding="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/ivCard2"
                android:layout_width="36dp"
                android:layout_height="36dp"
                android:layout_margin="8dp"
                android:src="@drawable/info_icon"
                tools:ignore="contentDescription" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="4dp"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/textView21"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="4dp"
                    android:text="TextView 3" />

                <TextView
                    android:id="@+id/textView22"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:text="TextView 4" />

            </LinearLayout>
        </LinearLayout>

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

    <android.support.v7.widget.CardView
        android:id="@+id/item_cardview_3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardCornerRadius="4dp"
        app:cardUseCompatPadding="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/ivCard3"
                android:layout_width="36dp"
                android:layout_height="36dp"
                android:layout_margin="8dp"
                android:src="@drawable/info_icon"
                tools:ignore="contentDescription" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="4dp"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/textView31"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="4dp"
                    android:text="TextView 5" />

                <TextView
                    android:id="@+id/textView32"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:text="TextView 6" />

            </LinearLayout>
        </LinearLayout>

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

    <android.support.v7.widget.CardView
        android:id="@+id/item_cardview_4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardCornerRadius="4dp"
        app:cardUseCompatPadding="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/ivCard4"
                android:layout_width="36dp"
                android:layout_height="36dp"
                android:layout_margin="8dp"
                android:src="@drawable/info_icon"
                tools:ignore="contentDescription" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="4dp"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/textView41"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="4dp"
                    android:text="TextView 7" />

                <TextView
                    android:id="@+id/textView42"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:text="TextView 8" />

            </LinearLayout>
        </LinearLayout>

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

    <android.support.v7.widget.CardView
        android:id="@+id/item_cardview_5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardCornerRadius="4dp"
        app:cardUseCompatPadding="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/ivCard5"
                android:layout_width="36dp"
                android:layout_height="36dp"
                android:layout_margin="8dp"
                android:src="@drawable/info_icon"
                tools:ignore="contentDescription" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="4dp"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/textView51"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="4dp"
                    android:text="TextView 9" />

                <TextView
                    android:id="@+id/textView52"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:text="TextView 10" />

            </LinearLayout>
        </LinearLayout>

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

    <android.support.v7.widget.CardView
        android:id="@+id/item_cardview_6"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardCornerRadius="4dp"
        app:cardUseCompatPadding="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/ivCard6"
                android:layout_width="36dp"
                android:layout_height="36dp"
                android:layout_margin="8dp"
                android:src="@drawable/info_icon"
                tools:ignore="contentDescription" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="4dp"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/textView61"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="4dp"
                    android:text="TextView 11" />

                <TextView
                    android:id="@+id/textView62"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:text="TextView 12" />

            </LinearLayout>
        </LinearLayout>

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

    <android.support.v7.widget.CardView
        android:id="@+id/item_cardview_7"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardCornerRadius="4dp"
        app:cardUseCompatPadding="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/ivCard7"
                android:layout_width="36dp"
                android:layout_height="36dp"
                android:layout_margin="8dp"
                android:src="@drawable/info_icon"
                tools:ignore="contentDescription" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="4dp"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/textView71"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="4dp"
                    android:text="TextView 13" />

                <TextView
                    android:id="@+id/textView72"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:text="TextView 14" />

            </LinearLayout>
        </LinearLayout>

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

        <android.support.v7.widget.CardView
            android:id="@+id/item_cardview_8"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:cardCornerRadius="4dp"
            app:cardUseCompatPadding="true">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <ImageView
                    android:id="@+id/ivCard8"
                    android:layout_width="36dp"
                    android:layout_height="36dp"
                    android:layout_margin="8dp"
                    android:src="@drawable/info_icon"
                    tools:ignore="contentDescription" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_margin="4dp"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/textView73"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="4dp"
                        android:text="TextView 13" />

                    <TextView
                        android:id="@+id/textView74"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="4dp"
                        android:text="TextView 14" />

                </LinearLayout>
            </LinearLayout>

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

        </LinearLayout>
    </ScrollView>

    <android.support.constraint.Guideline
        android:id="@+id/glHoriz2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_percent="0.9" />

    <Button
        android:id="@+id/btnCardViewOK"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:text="@string/state"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/glHoriz2" />
</android.support.constraint.ConstraintLayout>

但我认为物品的数量不足以滚动


你的解决方案可行,但不完全符合我的期望。我感到很疯狂,可能是因为我不理解Android在计算布局时的思考方式!我只想确定我要创建的对话框的尺寸,这样我就可以决定要保留给ScrollView的区域量,并且我想以编程方式完成它。我创建了布局,然后尝试更改视图的宽度和高度,但结果很奇怪! - Roby
哇..这在安卓上可不是一件容易的工作,伙计..但这是个好主意。我决定将来创建一个库来解决这个问题。祝好运。 - hamid keyhani

0

请尝试使用NestedScrollview,而不是使用Scrollview。


我得到了相同的结果。使用NestedScrollView没有任何变化。我无法理解。我以为很简单:外部容器(ConstraintLayout)必须匹配父级,内部视图必须在垂直方向上共享空间。但是在我的所有尝试中都不起作用! - Roby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接