如何在NestedScrollView中实现ConstraintLayout

2024-01-03

ConstraintLayout is behaving inconsistently if a TextView has very fewer texts than other TextView wrapped in horizontal LinearLayout. If a character in left TextView is not much less than right TextView then it is working great. Please refer red color texts and green color texts in attached screenshots. Buggy ScreenDesired screen

下面是布局的 XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView 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/color_F1F1F1"
    android:padding="10dp">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        android:padding="10dp">

        <TextView
            android:id="@+id/tv_name_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/employee_name"
            android:textColor="@color/color_999999"
            android:textSize="12sp"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@+id/tv_date_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/date"
            android:textColor="@color/color_999999"
            android:textSize="12sp"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />


        <TextView
            android:id="@+id/tv_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textColor="@color/black"
            android:textSize="14sp"
            android:textStyle="bold"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_name_header" />

        <TextView
            android:id="@+id/tv_date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textColor="@color/black"
            android:textSize="14sp"
            android:textStyle="bold"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_date_header" />

        <TextView
            android:id="@+id/tv_role_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="@string/employee_role"
            android:textColor="@color/color_999999"
            android:textSize="12sp"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_name" />

        <TextView
            android:id="@+id/tv_band_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="@string/employee_band"
            android:textColor="@color/color_999999"
            android:textSize="12sp"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_date" />


        <TextView
            android:id="@+id/tv_role"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textColor="@color/black"
            android:textSize="14sp"
            android:textStyle="bold"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_role_header" />

        <TextView
            android:id="@+id/tv_band"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textColor="@color/black"
            android:textSize="14sp"
            android:textStyle="bold"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_band_header" />

        <View
            android:id="@+id/view_divider"
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginTop="15dp"
            android:background="@color/color_E1E4EA"
            app:layout_constraintTop_toBottomOf="@id/tv_role" />

        <LinearLayout
            android:id="@+id/ll_address"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:orientation="horizontal"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/view_divider">
         <LinearLayout
             android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:orientation="horizontal">
            <TextView
                android:layout_width="15dp"
                android:layout_height="15dp"
                android:layout_marginTop="3dp"
                android:background="@drawable/circle_shape_green" />

            <TextView
                android:id="@+id/tv_origin_address"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:text=""
                android:textColor="@color/black"
                android:textSize="13sp" />
         </LinearLayout>
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="right"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="15dp"
                    android:layout_height="15dp"
                    android:layout_marginLeft="5dp"
                    android:layout_marginTop="3dp"
                    android:background="@drawable/circle_shape_red" />

                <TextView
                    android:id="@+id/tv_destination_address"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="5dp"
                    android:gravity="right"
                    android:text=""
                    android:textColor="@color/black"
                    android:textSize="13sp" />
            </LinearLayout>
        </LinearLayout>

        <TextView
            android:id="@+id/tv_justification_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="@string/justification"
            android:textColor="@color/color_999999"
            android:textSize="12sp"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toBottomOf="@id/ll_address" />


        <TextView
            android:id="@+id/tv_justification"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text=""
            android:textColor="@color/black"
            android:textSize="14sp"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_justification_header" />

        <TextView
            android:id="@+id/tv_vehicle_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="@string/vehicle_type"
            android:textColor="@color/color_999999"
            android:textSize="12sp"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_justification" />

        <TextView
            android:id="@+id/tv_vehicle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textColor="@color/black"
            android:textSize="14sp"
            android:textStyle="bold"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_vehicle_header" />

        <TextView
            android:id="@+id/tv_Duration_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="@string/distance"
            android:textColor="@color/color_999999"
            android:textSize="12sp"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_justification" />

        <TextView
            android:id="@+id/tv_duration"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textColor="@color/black"
            android:textSize="14sp"
            android:textStyle="bold"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_Duration_header" />

        <TextView
            android:id="@+id/tv_start_time_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="@string/start_time"
            android:textColor="@color/color_999999"
            android:textSize="12sp"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_vehicle" />

        <TextView
            android:id="@+id/tv_end_time_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="@string/end_time"
            android:textColor="@color/color_999999"
            android:textSize="12sp"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_duration" />


        <TextView
            android:id="@+id/tv_start_time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textColor="@color/black"
            android:textSize="14sp"
            android:textStyle="bold"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_start_time_header" />

        <TextView
            android:id="@+id/tv_end_time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textColor="@color/black"
            android:textSize="14sp"
            android:textStyle="bold"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_end_time_header" />

        <TextView
            android:id="@+id/tv_distance_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="@string/trip_distance"
            android:textColor="@color/color_999999"
            android:textSize="12sp"
            app:layout_constraintTop_toBottomOf="@id/tv_start_time" />

        <TextView
            android:id="@+id/tv_edited_distance_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="@string/edited_distance"
            android:textColor="@color/color_999999"
            android:textSize="12sp"
            android:visibility="gone"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_end_time" />

        <TextView
            android:id="@+id/tv_distance"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textColor="@color/black"
            android:textSize="14sp"
            android:textStyle="bold"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_distance_header" />

        <TextView
            android:id="@+id/tv_edited_distance"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textColor="@color/color_D15900"
            android:textSize="14sp"
            android:textStyle="bold"
            android:visibility="gone"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_edited_distance_header" />

        <TextView
            android:id="@+id/tv_edit_reason"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:textSize="14sp"
            android:visibility="gone"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_distance" />

        <LinearLayout
            android:id="@+id/ll_reject_reason"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:orientation="vertical"
            android:visibility="gone"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@id/tv_edit_reason">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:text="@string/manager_reject_reason"
                android:textColor="@color/color_999999"
                android:textSize="12sp" />


            <TextView
                android:id="@+id/tv_rejection_reason"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text=""
                android:textColor="@color/black"
                android:textSize="14sp" />

        </LinearLayout>

        <Button
            android:id="@+id/bt_back"
            style="@style/FlatButton"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:layout_marginTop="15dp"
            android:gravity="left|center_vertical"
            android:paddingLeft="0dp"
            android:text="@string/back"
            android:textAllCaps="true"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toBottomOf="@id/ll_reject_reason" />

        </android.support.constraint.ConstraintLayout>
     </android.support.v4.widget.NestedScrollView>

请忽略我的英语。


根据我交谈过的谷歌开发人员的说法,constraintLayout 版本 1.0.2 中存在一些关于 wrap_content 的错误。他建议使用 1.1.0-beta4 版本,通过使用 1.1.0-beta4 版本,我的问题已得到解决。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在NestedScrollView中实现ConstraintLayout 的相关文章

随机推荐