【问题标题】:How to add a barrier in ConstraintLayout如何在 ConstraintLayout 中添加障碍
【发布时间】:2020-04-11 02:18:54
【问题描述】:

我有一个使用RelativeLayout 和LinearLayout 创建的布局。我在 ConstraintLayout 中创建它时遇到问题。我发现我的问题可以使用障碍解决,但我发现它非常困难。

预期输出:

我的输出:

这是我的 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"
    android:background="@color/tracmor">

     <ScrollView
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:fillViewport="true">

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="@dimen/_3sdp"
        app:cardBackgroundColor="@color/grey"
        app:cardCornerRadius="@dimen/_3sdp"
        app:cardElevation="@dimen/_5sdp"
        app:layout_constraintTop_toTopOf="parent">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <!--For Asset-->
            <androidx.cardview.widget.CardView
                android:id="@+id/cvAsset"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_margin="@dimen/_10sdp"
                app:cardBackgroundColor="@color/white"
                app:cardCornerRadius="@dimen/_3sdp"
                app:cardElevation="@dimen/_3sdp"
                app:layout_constraintBottom_toTopOf="@+id/cvShipping"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_weight="45">

                <androidx.constraintlayout.widget.ConstraintLayout
                    android:id="@+id/clAsset"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_margin="@dimen/_10sdp">

                    <ImageView
                        android:id="@+id/ivAsset"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:layout_marginTop="@dimen/_10sdp"
                        android:layout_marginBottom="@dimen/_10sdp"
                        android:src="@drawable/assets"
                        app:layout_constraintBottom_toBottomOf="parent"
                        app:layout_constraintLeft_toLeftOf="parent"
                        app:layout_constraintRight_toRightOf="parent"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

                    <TextView
                        android:id="@+id/tvAssetStats"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="@dimen/_20sdp"
                        android:layout_marginTop="@dimen/_10sdp"
                        android:layout_marginEnd="@dimen/_20sdp"
                        android:layout_marginBottom="@dimen/_5sdp"
                        android:text="@string/assetstatistics"
                        android:textColor="@color/black"
                        android:textSize="@dimen/dashboard_Title"
                        app:layout_constraintStart_toEndOf="@+id/ivAsset"
                        app:layout_constraintTop_toTopOf="parent" />

                    <TextView
                        android:id="@+id/tvAssetNo"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="@dimen/_10sdp"
                        android:textColor="@color/blue"
                        android:textSize="@dimen/dashboard_Count"
                        app:layout_constraintEnd_toStartOf="@+id/vline"
                        app:layout_constraintHorizontal_bias="0.5"
                        app:layout_constraintStart_toEndOf="@+id/ivAsset"
                        app:layout_constraintStart_toStartOf="@id/tvAssetStats"
                        app:layout_constraintTop_toBottomOf="@+id/tvAssetStats" />

                    <TextView
                        android:id="@+id/tvAssetDetail"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_marginEnd="@dimen/_20sdp"
                        android:textColor="@color/blue"
                        android:textSize="@dimen/dashboard_Count"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintHorizontal_bias="0.5"
                        app:layout_constraintStart_toEndOf="@+id/vline"
                        app:layout_constraintTop_toBottomOf="@+id/tvAssetStats" />

                    <View
                        android:id="@+id/vline"
                        android:layout_width="@dimen/_1sdp"
                        android:layout_height="@dimen/dashboard_Count"
                        android:layout_marginStart="@dimen/_5sdp"
                        android:layout_marginTop="@dimen/_4sdp"
                        android:layout_marginEnd="@dimen/_5sdp"
                        android:background="@color/grey2"
                        app:layout_constraintEnd_toStartOf="@+id/tvAssetDetail"
                        app:layout_constraintHorizontal_bias="0.5"
                        app:layout_constraintStart_toEndOf="@+id/tvAssetNo"
                        app:layout_constraintTop_toBottomOf="@+id/tvAssetStats" />

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

            <!--For Shipping-->
            <androidx.cardview.widget.CardView
                android:id="@+id/cvShipping"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_gravity="center"
                android:layout_margin="@dimen/_10sdp"
                app:cardBackgroundColor="@color/white"
                app:cardCornerRadius="@dimen/_3sdp"
                app:cardElevation="@dimen/_3sdp"

                app:layout_constraintBottom_toTopOf="@+id/cvReceipt"

                app:layout_constraintTop_toBottomOf="@+id/cvAsset"
                app:layout_constraintVertical_weight="45">

                <androidx.constraintlayout.widget.ConstraintLayout
                    android:id="@+id/clShipping"
                    android:layout_width="match_parent"

                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_margin="@dimen/_10sdp">

                    <ImageView
                        android:id="@+id/ivShipping"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:layout_marginTop="@dimen/_10sdp"
                        android:layout_marginBottom="@dimen/_10sdp"
                        android:src="@drawable/shipping"
                        app:layout_constraintBottom_toBottomOf="parent"
                        app:layout_constraintLeft_toLeftOf="parent"
                        app:layout_constraintRight_toRightOf="parent"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

                    <TextView
                        android:id="@+id/tvShippingStats"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="@dimen/_20sdp"
                        android:layout_marginTop="@dimen/_10sdp"
                        android:layout_marginEnd="@dimen/_20sdp"
                        android:layout_marginBottom="@dimen/_5sdp"
                        android:text="@string/shippingactivity"
                        android:textColor="@color/black"
                        android:textSize="@dimen/dashboard_Title"
                        app:layout_constraintStart_toEndOf="@+id/ivShipping"
                        app:layout_constraintTop_toTopOf="parent" />

                    <TextView
                        android:id="@+id/tvShippingNo"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="@dimen/_10sdp"
                        android:textColor="@color/blue"
                        android:textSize="@dimen/dashboard_Count"
                        app:layout_constraintEnd_toStartOf="@+id/vlineS"
                        app:layout_constraintHorizontal_bias="0.5"
                        app:layout_constraintStart_toEndOf="@+id/ivShipping"
                        app:layout_constraintStart_toStartOf="@id/tvShippingStats"
                        app:layout_constraintTop_toBottomOf="@+id/tvShippingStats" />

                    <TextView
                        android:id="@+id/tvShipppingDetail"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_marginEnd="@dimen/_20sdp"
                        android:textColor="@color/blue"
                        android:textSize="@dimen/dashboard_Count"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintHorizontal_bias="0.5"
                        app:layout_constraintStart_toEndOf="@+id/vlineS"
                        app:layout_constraintTop_toBottomOf="@+id/tvShippingStats" />

                    <View
                        android:id="@+id/vlineS"
                        android:layout_width="@dimen/_1sdp"
                        android:layout_height="@dimen/dashboard_Count"
                        android:layout_marginStart="@dimen/_5sdp"
                        android:layout_marginTop="@dimen/_4sdp"
                        android:layout_marginEnd="@dimen/_5sdp"
                        android:background="@color/grey2"
                        app:layout_constraintEnd_toStartOf="@+id/tvShipppingDetail"
                        app:layout_constraintHorizontal_bias="0.5"
                        app:layout_constraintStart_toEndOf="@+id/tvShippingNo"
                        app:layout_constraintTop_toBottomOf="@+id/tvShippingStats" />

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

            <!--For Receipt-->
            <androidx.cardview.widget.CardView
                android:id="@+id/cvReceipt"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_gravity="center"
                android:layout_margin="@dimen/_10sdp"
                app:cardBackgroundColor="@color/white"
                app:cardCornerRadius="@dimen/_3sdp"
                app:cardElevation="@dimen/_3sdp"
                app:layout_constraintBottom_toTopOf="@+id/cvkb"

                app:layout_constraintTop_toBottomOf="@+id/cvShipping"
                app:layout_constraintVertical_weight="45">

                <androidx.constraintlayout.widget.ConstraintLayout
                    android:id="@+id/clReceipt"
                    android:layout_width="match_parent"

                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_margin="@dimen/_10sdp">

                    <ImageView
                        android:id="@+id/ivReceipt"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:layout_marginTop="@dimen/_10sdp"
                        android:layout_marginBottom="@dimen/_10sdp"
                        android:src="@drawable/receiving"
                        app:layout_constraintBottom_toBottomOf="parent"
                        app:layout_constraintLeft_toLeftOf="parent"
                        app:layout_constraintRight_toRightOf="parent"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

                    <TextView
                        android:id="@+id/tvReceiptStats"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="@dimen/_20sdp"
                        android:layout_marginTop="@dimen/_10sdp"
                        android:layout_marginEnd="@dimen/_20sdp"
                        android:layout_marginBottom="@dimen/_5sdp"
                        android:text="@string/receivingactivity"
                        android:textColor="@color/black"
                        android:textSize="@dimen/dashboard_Title"
                        app:layout_constraintStart_toEndOf="@+id/ivReceipt"
                        app:layout_constraintTop_toTopOf="parent" />

                    <TextView
                        android:id="@+id/tvReceivingNo"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="@dimen/_10sdp"
                        android:textColor="@color/blue"
                        android:textSize="@dimen/dashboard_Count"
                        app:layout_constraintEnd_toStartOf="@+id/vlineR"
                        app:layout_constraintHorizontal_bias="0.5"
                        app:layout_constraintStart_toEndOf="@+id/ivReceipt"
                        app:layout_constraintStart_toStartOf="@id/tvReceiptStats"
                        app:layout_constraintTop_toBottomOf="@+id/tvReceiptStats" />

                    <TextView
                        android:id="@+id/tvReceivingDetail"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_marginEnd="@dimen/_20sdp"
                        android:textColor="@color/blue"
                        android:textSize="@dimen/dashboard_Count"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintHorizontal_bias="0.5"
                        app:layout_constraintStart_toEndOf="@+id/vlineR"
                        app:layout_constraintTop_toBottomOf="@+id/tvReceiptStats" />

                    <View
                        android:id="@+id/vlineR"
                        android:layout_width="@dimen/_1sdp"
                        android:layout_height="@dimen/dashboard_Count"
                        android:layout_marginStart="@dimen/_5sdp"
                        android:layout_marginTop="@dimen/_4sdp"
                        android:layout_marginEnd="@dimen/_5sdp"
                        android:background="@color/grey2"
                        app:layout_constraintEnd_toStartOf="@+id/tvReceivingDetail"
                        app:layout_constraintHorizontal_bias="0.5"
                        app:layout_constraintStart_toEndOf="@+id/tvReceivingNo"
                        app:layout_constraintTop_toBottomOf="@+id/tvReceiptStats" />

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


                <!--For Knowledgebase-->
            <androidx.cardview.widget.CardView
                android:id="@+id/cvkb"
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_margin="@dimen/_10sdp"
                app:cardBackgroundColor="@color/white"
                app:cardCornerRadius="@dimen/_3sdp"
                app:cardElevation="@dimen/_3sdp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toStartOf="@+id/guideline"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/cvReceipt"
                app:layout_constraintVertical_weight="65">

                <androidx.constraintlayout.widget.ConstraintLayout
                    android:id="@+id/clKb"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_margin="@dimen/_10sdp">

                    <ImageView
                        android:id="@+id/ivKnowledgebase"
                        android:layout_width="wrap_content"
                        android:layout_height="0dp"
                        android:src="@drawable/knowledge"
                        app:layout_constraintLeft_toLeftOf="parent"
                        app:layout_constraintRight_toRightOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="0dp"
                        android:layout_margin="@dimen/_10sdp"
                        android:gravity="center"
                        android:text="@string/knowledgebase"
                        android:textColor="@color/black"
                        android:textSize="@dimen/dashboard_Title"
                        app:layout_constraintTop_toBottomOf="@+id/ivKnowledgebase" />

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


            <!-- <View
                            android:layout_width="0dp"
                            android:layout_height="0dp"
                            app:layout_constraintBottom_toBottomOf="@+id/cvkb"
                            app:layout_constraintStart_toEndOf="@+id/cvkb"
                            app:layout_constraintTop_toBottomOf="@+id/cvReceipt"
                            app:layout_constraintWidth_percent=".02" />
            -->
            <!--For RequestSupport-->
            <androidx.cardview.widget.CardView
                android:id="@+id/cvRS"
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_margin="@dimen/_10sdp"
                app:cardBackgroundColor="@color/white"
                app:cardCornerRadius="@dimen/_3sdp"
                app:cardElevation="@dimen/_3sdp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toEndOf="@id/guideline"
                app:layout_constraintTop_toBottomOf="@+id/cvReceipt"
                app:layout_constraintVertical_weight="65"

                >

                <androidx.constraintlayout.widget.ConstraintLayout
                    android:id="@+id/clRS"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_margin="@dimen/_10sdp">

                    <ImageView
                        android:id="@+id/ivRequestSupport"
                        android:layout_width="wrap_content"
                        android:layout_height="0dp"
                        android:src="@drawable/request"
                        app:layout_constraintLeft_toLeftOf="parent"
                        app:layout_constraintRight_toRightOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="0dp"
                        android:layout_margin="@dimen/_10sdp"
                        android:gravity="center"
                        android:text="@string/requestsupport"
                        android:textColor="@color/black"
                        android:textSize="@dimen/dashboard_Title"
                        app:layout_constraintTop_toBottomOf="@+id/ivRequestSupport" />

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

            <!-- <android.support.constraint.Barrier
                            android:id="@+id/barrier"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            app:barrierDirection="end"
                            app:constraint_referenced_ids="cvkb,cvRS" />
            -->

            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                app:layout_constraintGuide_percent="0.5" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.cardview.widget.CardView>
    </ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

除了请求支持 CardView 之外,一切几乎都是正确的

编辑:当我旋转设备时,视图仍然保持约束,但布局被压缩,当我重定向到其他片段时,约束布局在首次启动时不显示一些图像和文本,然后它显示所有图片和文字。 landscape firstlaunch

【问题讨论】:

    标签: android android-constraintlayout


    【解决方案1】:

    将具有android:id="@+id/cvRS"CardView 更改为这样

    <androidx.cardview.widget.CardView
                    android:id="@+id/cvRS"
                    android:layout_width="0dp"
                    android:layout_height="0dp"
                    android:layout_marginEnd="@dimen/_10sdp"
                    android:layout_marginStart="@dimen/_10sdp"
                    app:cardBackgroundColor="@color/white"
                    app:cardCornerRadius="@dimen/_3sdp"
                    app:cardElevation="@dimen/_3sdp"
                    app:layout_constraintBottom_toBottomOf="@id/cvkb"// this do the trick
                    app:layout_constraintTop_toTopOf="@id/cvkb" //
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0.5"
                    app:layout_constraintStart_toEndOf="@id/guideline"
                    app:layout_constraintVertical_weight="65"
                    >
    

    编辑:检查完整的布局文件

    <?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/tracmor">
    
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true">
    
        <androidx.cardview.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="@dimen/_3sdp"
            app:cardBackgroundColor="@color/grey"
            app:cardCornerRadius="@dimen/_3sdp"
            app:cardElevation="@dimen/_5sdp"
            app:layout_constraintTop_toTopOf="parent">
    
            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">
                <!--For Asset-->
                <androidx.cardview.widget.CardView
                    android:id="@+id/cvAsset"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_margin="@dimen/_10sdp"
                    app:cardBackgroundColor="@color/white"
                    app:cardCornerRadius="@dimen/_3sdp"
                    app:cardElevation="@dimen/_3sdp"
                    app:layout_constraintBottom_toTopOf="@+id/cvShipping"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintVertical_weight="45">
    
                    <androidx.constraintlayout.widget.ConstraintLayout
                        android:id="@+id/clAsset"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_margin="@dimen/_10sdp">
    
                        <ImageView
                            android:id="@+id/ivAsset"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:src="@drawable/assets"
                            app:layout_constraintBottom_toBottomOf="parent"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toTopOf="parent" />
    
                        <TextView
                            android:id="@+id/tvAssetStats"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginStart="@dimen/_20sdp"
                            android:text="@string/assetstatistics"
                            android:textColor="@color/black"
                            android:textSize="@dimen/dashboard_Title"
                            app:layout_constraintBottom_toTopOf="@id/tvAssetNo"
                            app:layout_constraintStart_toEndOf="@+id/ivAsset"
                            app:layout_constraintTop_toTopOf="@id/ivAsset"
                            app:layout_constraintVertical_chainStyle="packed" />
    
                        <TextView
                            android:id="@+id/tvAssetNo"
                            android:layout_width="0dp"
                            android:layout_height="wrap_content"
                            android:text="testValue1"
                            android:textColor="@color/blue"
                            android:textSize="@dimen/dashboard_Count"
                            app:layout_constraintBottom_toBottomOf="parent"
                            app:layout_constraintEnd_toStartOf="@+id/vline"
                            app:layout_constraintStart_toStartOf="@id/tvAssetStats"
                            app:layout_constraintTop_toBottomOf="@+id/tvAssetStats" />
    
                        <TextView
                            android:id="@+id/tvAssetDetail"
                            android:layout_width="0dp"
                            android:layout_height="match_parent"
                            android:gravity="center"
                            android:text="testValue1"
                            android:textColor="@color/blue"
                            android:textSize="@dimen/dashboard_Count"
                            app:layout_constraintBottom_toBottomOf="@id/tvAssetNo"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toEndOf="@+id/vline"
                            app:layout_constraintTop_toTopOf="@+id/tvAssetNo" />
    
                        <View
                            android:id="@+id/vline"
                            android:layout_width="@dimen/_1sdp"
                            android:layout_height="@dimen/dashboard_Count"
                            android:background="@color/grey2"
                            app:layout_constraintBottom_toBottomOf="@id/tvAssetNo"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintHorizontal_bias="0.5"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toTopOf="@id/tvAssetNo" />
    
                    </androidx.constraintlayout.widget.ConstraintLayout>
                </androidx.cardview.widget.CardView>
    
                <!--For Shipping-->
                <androidx.cardview.widget.CardView
                    android:id="@+id/cvShipping"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_gravity="center"
                    android:layout_margin="@dimen/_10sdp"
                    app:cardBackgroundColor="@color/white"
                    app:cardCornerRadius="@dimen/_3sdp"
                    app:cardElevation="@dimen/_3sdp"
                    app:layout_constraintBottom_toTopOf="@+id/cvReceipt"
    
                    app:layout_constraintTop_toBottomOf="@+id/cvAsset"
                    app:layout_constraintVertical_weight="45">
    
                    <androidx.constraintlayout.widget.ConstraintLayout
                        android:id="@+id/clShipping"
                        android:layout_width="match_parent"
    
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_margin="@dimen/_10sdp">
    
                        <ImageView
                            android:id="@+id/ivShipping"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:src="@drawable/shipping"
                            app:layout_constraintBottom_toBottomOf="parent"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toTopOf="parent" />
    
                        <TextView
                            android:id="@+id/tvShippingStats"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginStart="@dimen/_20sdp"
                            android:text="@string/shippingactivity"
                            android:textColor="@color/black"
                            android:textSize="@dimen/dashboard_Title"
                            app:layout_constraintBottom_toTopOf="@id/tvShippingNo"
                            app:layout_constraintStart_toEndOf="@+id/ivShipping"
                            app:layout_constraintTop_toTopOf="@id/ivShipping"
                            app:layout_constraintVertical_chainStyle="packed" />
    
                        <TextView
                            android:id="@+id/tvShippingNo"
                            android:layout_width="0dp"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="@dimen/_10sdp"
                            android:text="testValue2"
                            android:textColor="@color/blue"
                            android:textSize="@dimen/dashboard_Count"
                            app:layout_constraintBottom_toBottomOf="parent"
                            app:layout_constraintEnd_toStartOf="@+id/vlineS"
                            app:layout_constraintStart_toStartOf="@id/tvShippingStats"
                            app:layout_constraintTop_toBottomOf="@+id/tvShippingStats" />
    
                        <TextView
                            android:id="@+id/tvShipppingDetail"
                            android:layout_width="0dp"
                            android:layout_height="match_parent"
                            android:gravity="center"
                            android:text="testValue2"
                            android:textColor="@color/blue"
                            android:textSize="@dimen/dashboard_Count"
                            app:layout_constraintBottom_toBottomOf="@id/tvShippingNo"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toEndOf="@+id/vlineS"
                            app:layout_constraintTop_toTopOf="@+id/tvShippingNo" />
    
                        <View
                            android:id="@+id/vlineS"
                            android:layout_width="@dimen/_1sdp"
                            android:layout_height="@dimen/dashboard_Count"
                            android:background="@color/grey2"
                            app:layout_constraintBottom_toBottomOf="@id/tvShippingNo"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintHorizontal_bias="0.5"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toTopOf="@id/tvShippingNo" />
    
                    </androidx.constraintlayout.widget.ConstraintLayout>
                </androidx.cardview.widget.CardView>
    
                <!--For Receipt-->
                <androidx.cardview.widget.CardView
                    android:id="@+id/cvReceipt"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_gravity="center"
                    android:layout_margin="@dimen/_10sdp"
                    app:cardBackgroundColor="@color/white"
                    app:cardCornerRadius="@dimen/_3sdp"
                    app:cardElevation="@dimen/_3sdp"
                    app:layout_constraintBottom_toTopOf="@+id/cvkb"
    
                    app:layout_constraintTop_toBottomOf="@+id/cvShipping"
                    app:layout_constraintVertical_weight="45">
    
                    <androidx.constraintlayout.widget.ConstraintLayout
                        android:id="@+id/clReceipt"
                        android:layout_width="match_parent"
    
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_margin="@dimen/_10sdp">
    
                        <ImageView
                            android:id="@+id/ivReceipt"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:src="@drawable/receiving"
                            app:layout_constraintBottom_toBottomOf="parent"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toTopOf="parent" />
    
                        <TextView
                            android:id="@+id/tvReceiptStats"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginStart="@dimen/_20sdp"
                            android:text="@string/receivingactivity"
                            android:textColor="@color/black"
                            android:textSize="@dimen/dashboard_Title"
                            app:layout_constraintBottom_toTopOf="@id/tvReceivingNo"
                            app:layout_constraintStart_toEndOf="@+id/ivReceipt"
                            app:layout_constraintTop_toTopOf="@id/ivReceipt"
                            app:layout_constraintVertical_chainStyle="packed" />
    
                        <TextView
                            android:id="@+id/tvReceivingNo"
                            android:layout_width="0dp"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="@dimen/_10sdp"
                            android:text="testValue3"
                            android:textColor="@color/blue"
                            android:textSize="@dimen/dashboard_Count"
                            app:layout_constraintBottom_toBottomOf="parent"
                            app:layout_constraintEnd_toStartOf="@+id/vlineR"
                            app:layout_constraintStart_toStartOf="@id/tvReceiptStats"
                            app:layout_constraintTop_toBottomOf="@+id/tvReceiptStats" />
    
                        <TextView
                            android:id="@+id/tvReceivingDetail"
                            android:layout_width="0dp"
                            android:layout_height="match_parent"
                            android:layout_marginEnd="@dimen/_20sdp"
                            android:gravity="center"
                            android:text="testValue3"
                            android:textColor="@color/blue"
                            android:textSize="@dimen/dashboard_Count"
                            app:layout_constraintBottom_toBottomOf="@id/tvReceivingNo"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toEndOf="@+id/vlineR"
                            app:layout_constraintTop_toTopOf="@+id/tvReceivingNo" />
    
                        <View
                            android:id="@+id/vlineR"
                            android:layout_width="@dimen/_1sdp"
                            android:layout_height="@dimen/dashboard_Count"
                            android:background="@color/grey2"
                            app:layout_constraintBottom_toBottomOf="@id/tvReceivingNo"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintHorizontal_bias="0.5"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toTopOf="@id/tvReceivingNo" />
    
                    </androidx.constraintlayout.widget.ConstraintLayout>
                </androidx.cardview.widget.CardView>
    
    
                <!--For Knowledgebase-->
                <androidx.cardview.widget.CardView
                    android:id="@+id/cvkb"
                    android:layout_width="0dp"
                    android:layout_height="0dp"
                    android:layout_margin="@dimen/_10sdp"
                    app:cardBackgroundColor="@color/white"
                    app:cardCornerRadius="@dimen/_3sdp"
                    app:cardElevation="@dimen/_3sdp"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toStartOf="@+id/guideline"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/cvReceipt"
                    app:layout_constraintVertical_weight="65">
    
                    <androidx.constraintlayout.widget.ConstraintLayout
                        android:id="@+id/clKb"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_margin="@dimen/_4sdp">
    
                        <ImageView
                            android:id="@+id/ivKnowledgebase"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:src="@drawable/knowledge"
                            app:layout_constraintBottom_toTopOf="@id/tv_knowledge"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toTopOf="parent"
                            app:layout_constraintVertical_chainStyle="spread" />
    
                        <TextView
                            android:id="@+id/tv_knowledge"
                            android:layout_width="0dp"
                            android:layout_height="wrap_content"
                            android:gravity="center"
                            android:text="@string/knowledgebase"
                            android:textColor="@color/black"
                            android:textSize="@dimen/dashboard_Title"
                            app:layout_constraintBottom_toBottomOf="parent"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toBottomOf="@+id/ivKnowledgebase" />
    
                    </androidx.constraintlayout.widget.ConstraintLayout>
                </androidx.cardview.widget.CardView>
    
    
                <!-- <View
                                android:layout_width="0dp"
                                android:layout_height="0dp"
                                app:layout_constraintBottom_toBottomOf="@+id/cvkb"
                                app:layout_constraintStart_toEndOf="@+id/cvkb"
                                app:layout_constraintTop_toBottomOf="@+id/cvReceipt"
                                app:layout_constraintWidth_percent=".02" />
                -->
                <!--For RequestSupport-->
                <androidx.cardview.widget.CardView
                    android:id="@+id/cvRS"
                    android:layout_width="0dp"
                    android:layout_height="0dp"
                    android:layout_marginStart="@dimen/_10sdp"
                    android:layout_marginEnd="@dimen/_10sdp"
                    app:cardBackgroundColor="@color/white"
                    app:cardCornerRadius="@dimen/_3sdp"
                    app:cardElevation="@dimen/_3sdp"
                    app:layout_constraintBottom_toBottomOf="@id/cvkb"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toEndOf="@id/guideline"
                    app:layout_constraintTop_toTopOf="@id/cvkb"
                    app:layout_constraintVertical_weight="65"
    
                    >
    
                    <androidx.constraintlayout.widget.ConstraintLayout
                        android:id="@+id/clRS"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_margin="@dimen/_4sdp">
    
                        <ImageView
                            android:id="@+id/ivRequestSupport"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:src="@drawable/request"
                            app:layout_constraintBottom_toTopOf="@id/tv_support"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toTopOf="parent"
                            app:layout_constraintVertical_chainStyle="spread"
                            />
    
                        <TextView
                            android:id="@+id/tv_support"
                            android:layout_width="0dp"
                            android:layout_height="wrap_content"
                            android:gravity="center"
                            android:textColor="@color/black"
                            android:textSize="@dimen/dashboard_Title"
                            android:text="@string/requestsupport"
                            app:layout_constraintBottom_toBottomOf="parent"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toBottomOf="@+id/ivRequestSupport" />
    
                    </androidx.constraintlayout.widget.ConstraintLayout>
                </androidx.cardview.widget.CardView>
    
                <!-- <android.support.constraint.Barrier
                                android:id="@+id/barrier"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                app:barrierDirection="end"
                                app:constraint_referenced_ids="cvkb,cvRS" />
                -->
    
                <androidx.constraintlayout.widget.Guideline
                    android:id="@+id/guideline"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    app:layout_constraintGuide_percent="0.5" />
            </androidx.constraintlayout.widget.ConstraintLayout>
        </androidx.cardview.widget.CardView>
    </ScrollView>
    

    检查此image 以获得最终输出

    【讨论】:

    • 谢谢你。解决了我的问题。我有另一个问题,当我旋转屏幕时,我的布局不起作用。我在设计中使用了正确的做法吗
    • 横向布局有什么问题,我认为您的限制是正确的。
    • 这里是landscape 在手机中测试但在布局编辑器中显示正确的屏幕截图。我还有一个问题,它不是在一开始就在片段中加载图像,但是在重定向到另一个片段并再次加载之后,它被正确加载了。 First launch
    • 您的景观似乎受到给定约束的约束,如果您需要除此之外的其他内容,我无法弄清楚,您可以发表新文章并描述您想要实现的目标,所以很容易回答,我相信你会得到很多帮助
    • 如果你能帮忙,我已经编辑了这个问题。
    猜你喜欢
    • 2021-09-05
    • 2019-09-06
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多