【问题标题】:How to implement ConstraintLayout in NestedScrollView如何在 NestedScrollView 中实现 ConstraintLayout
【发布时间】:2018-01-09 12:31:10
【问题描述】:

如果 TextView 的文本比水平 LinearLayout 中包装的其他 TextView 的文本少得多,则 ConstraintLayout 的行为会不一致。如果左侧TextView 中的字符不小于右侧TextView,那么它工作得很好。 请参考所附屏幕截图中的红色文本和绿色文本。

以下是用于布局的 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>

请忽略我的英语。

【问题讨论】:

    标签: android android-layout android-constraintlayout


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      <?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"
                                                  xmlns:tools="http://schemas.android.com/tools"
                                                  android:layout_width="match_parent"
                                                  android:layout_height="match_parent"
                                                  android:background="#F1F1F1">
      
          <android.support.constraint.ConstraintLayout
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="#ffffff"
              android:layout_margin = "10dp">
      
              <TextView
                  android:id="@+id/tv_name_header"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="employee_name"
                  android:textColor="#999999"
                  android:textSize="12sp"
                  app:layout_constraintLeft_toLeftOf="parent"
                  app:layout_constraintTop_toTopOf="parent"
                  app:layout_constraintBottom_toTopOf="@+id/tv_name"
                  />
      
              <TextView
                  android:id="@+id/tv_date_header"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="date_header"
                  android:textColor="#999999"
                  android:textSize="12sp"
                  app:layout_constraintRight_toRightOf="parent"
                  app:layout_constraintTop_toTopOf="parent"
                  app:layout_constraintLeft_toRightOf="@+id/tv_name_header"
                  app:layout_constraintBottom_toTopOf="@+id/tv_date"/>
      
      
              <TextView
                  android:id="@+id/tv_name"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="name"
                  android:textColor="#000000"
                  android:textSize="14sp"
                  android:textStyle="bold"
                  app:layout_constraintLeft_toLeftOf="parent"
                  app:layout_constraintTop_toBottomOf="@+id/tv_name_header"
                  app:layout_constraintBottom_toTopOf="@+id/tv_role_header"
                  />
      
              <TextView
                  android:id="@+id/tv_date"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="date"
                  android:textColor="#000000"
                  android:textSize="14sp"
                  android:textStyle="bold"
                  app:layout_constraintTop_toBottomOf="@+id/tv_date_header"
                  app:layout_constraintLeft_toLeftOf="@+id/tv_date_header"
                  app:layout_constraintBottom_toTopOf="@+id/tv_band_header"
                  />
      
              <TextView
                  android:id="@+id/tv_role_header"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_marginTop="10dp"
                  android:text="employee_role"
                  android:textColor="#999999"
                  android:textSize="12sp"
                  app:layout_constraintLeft_toLeftOf="@+id/tv_name"
                  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="11dp"
                  android:text="employee_band"
                  android:textColor="#999999"
                  android:textSize="12sp"
                  app:layout_constraintLeft_toLeftOf="@+id/tv_date"
                  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="role"
                  android:textColor="#000000"
                  android:textSize="14sp"
                  android:textStyle="bold"
                  app:layout_constraintLeft_toLeftOf="@+id/tv_role_header"
                  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="band"
                  android:textColor="#000000"
                  android:textSize="14sp"
                  android:textStyle="bold"
                  app:layout_constraintLeft_toLeftOf="@+id/tv_band_header"
                  app:layout_constraintTop_toBottomOf="@+id/tv_band_header" />
      
              <View
                  android:id="@+id/view_divider"
                  android:layout_width="0dp"
                  android:layout_height="1dp"
                  android:layout_marginTop="15dp"
                  android:background="#E1E4EA"
                  app:layout_constraintTop_toBottomOf="@+id/tv_role"
                  app:layout_constraintRight_toRightOf="parent"
                  app:layout_constraintLeft_toLeftOf="parent"/>
      
              <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"
                          />
      
                      <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="origin_address \n origin_address"
                          android:textColor="#000000"
                          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"
                          />
      
                      <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="destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address "
                          android:textColor="#000000"
                          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="justification_header"
                  android:textColor="#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="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="justification"
                  android:textColor="#000000"
                  android:textSize="14sp"
                  app:layout_constraintLeft_toLeftOf="@+id/tv_justification_header"
                  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="vehicle_type"
                  android:textColor="#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="vehicle"
                  android:textColor="#000000"
                  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="distance"
                  android:textColor="#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="duration"
                  android:textColor="#000000"
                  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="start_time"
                  android:textColor="#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="end_time"
                  android:textColor="#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="start_time"
                  android:textColor="#000000"
                  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="end_time"
                  android:textColor="#000000"
                  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="trip_distance"
                  android:textColor="#999999"
                  android:textSize="12sp"
                  app:layout_constraintTop_toBottomOf="@+id/tv_start_time"
                  app:layout_constraintLeft_toLeftOf="parent"/>
      
              <TextView
                  android:id="@+id/tv_edited_distance_header"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="edited_distance"
                  android:textColor="#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="distance"
                  android:textColor="#000000"
                  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="edited_distance"
                  android:textColor="#D15900"
                  android:textSize="14sp"
                  android:textStyle="bold"
                  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:textSize="14sp"
                  android:text="edit_reason"
                  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:orientation="vertical"
                  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="manager_reject_reason"
                      android:textColor="#999999"
                      android:textSize="12sp" />
      
      
                  <TextView
                      android:id="@+id/tv_rejection_reason"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:text="rejection_reason"
                      android:textColor="#000000"
                      android:textSize="14sp" />
      
              </LinearLayout>
      
              <Button
                  android:id="@+id/bt_back"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_marginTop="14dp"
                  android:gravity="center"
                  android:text="Back"
                  android:textAllCaps="true"
                  app:layout_constraintLeft_toLeftOf="parent"
                  app:layout_constraintTop_toBottomOf="@+id/ll_reject_reason"
                  app:layout_constraintBottom_toBottomOf="parent"
                  android:layout_marginLeft="12dp"
                  android:layout_marginBottom="14dp"
                  android:layout_marginStart="12dp"/>
      
          </android.support.constraint.ConstraintLayout>
      </android.support.v4.widget.NestedScrollView>
      

      【讨论】:

      • 您的解决方案没有解决问题,如果我使用上面的 xml,那么前 3-4 个视图将从顶部裁剪。顺便说一句,感谢您的宝贵时间。
      • 我曾尝试解决问题,从 xml 中删除可绘制路径后,如果您使用可绘制、字符串和颜色等资源文件代码更新您的问题。我会再试一次..
      • 您可以删除可绘制对象,并且您已经替换了字符串和颜色。基本上,我的代码工作正常,但是当左侧文本视图的字符与附加图像中标记的右侧文本视图相比非常少时,它的行为很奇怪,在这种情况下,底部的后退按钮不显示,如果我在按钮中使用 vertical_bias,那么在某些情况下它会重叠它的上面视图..您可以在两个文本视图中使用 diff-2 字符检查它.. 再次感谢您宝贵的时间.. :)
      • 未解决 :( ,我也向谷歌报告了 3 天的问题,但我没有得到任何回复。在issuetracker.google.com/issues/71737537报告的问题
      • 我得到了谷歌开发者的回复,他们无法重现这个问题,他们建议使用 1.1.0 beta4 版本,因为他们已经修复了许多关于 wrap_content 的问题。如果我能得到任何解决方案,我会告诉你的。顺便说一句,感谢您宝贵的时间..:) 学习愉快 :)
      【解决方案3】:

      你需要给你的按钮添加约束底部,像这样

          <Button
              android:id="@+id/bt_back"
              android:layout_width="wrap_content"
              android:layout_height="35dp"
      
              android:gravity="left|center_vertical"
              android:paddingLeft="0dp"
              android:text="back"
              android:textAllCaps="true"
              app:layout_constraintBottom_toBottomOf="parent"
              app:layout_constraintEnd_toEndOf="parent"
              app:layout_constraintLeft_toLeftOf="parent"
              app:layout_constraintTop_toBottomOf="@id/ll_reject_reason"
              app:layout_constraintVertical_bias="0.0" />
      

      【讨论】:

      • 在这种情况下按钮重叠...问题未修复..顺便感谢您的时间..
      【解决方案4】:
      <?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:layout_width="match_parent"
                                                  android:layout_height="match_parent"
                                                  android:background="#F1F1F1"
                                                   >
      
      <android.support.v4.widget.NestedScrollView
                      android:id="@+id/NestedScrollView"
                      android:layout_width="0dp"
                      android:layout_height="0dp"
                      app:layout_constraintBottom_toTopOf="@+id/bt_back"
                      app:layout_constraintRight_toRightOf="parent"
                      app:layout_constraintLeft_toLeftOf="parent"
                      app:layout_constraintTop_toTopOf="parent">
      
          <android.support.constraint.ConstraintLayout
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="#ffffff"
              android:layout_margin = "10dp">
      
              <TextView
                  android:id="@+id/tv_name_header"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="employee_name"
                  android:textColor="#999999"
                  android:textSize="12sp"
                  app:layout_constraintLeft_toLeftOf="parent"
                  app:layout_constraintTop_toTopOf="parent"
                  app:layout_constraintBottom_toTopOf="@+id/tv_name"
                  />
      
              <TextView
                  android:id="@+id/tv_date_header"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="date_header"
                  android:textColor="#999999"
                  android:textSize="12sp"
                  app:layout_constraintRight_toRightOf="parent"
                  app:layout_constraintTop_toTopOf="parent"
                  app:layout_constraintLeft_toRightOf="@+id/tv_name_header"
                  app:layout_constraintBottom_toTopOf="@+id/tv_date"/>
      
      
              <TextView
                  android:id="@+id/tv_name"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="name"
                  android:textColor="#000000"
                  android:textSize="14sp"
                  android:textStyle="bold"
                  app:layout_constraintLeft_toLeftOf="parent"
                  app:layout_constraintTop_toBottomOf="@+id/tv_name_header"
                  app:layout_constraintBottom_toTopOf="@+id/tv_role_header"
                  />
      
              <TextView
                  android:id="@+id/tv_date"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="date"
                  android:textColor="#000000"
                  android:textSize="14sp"
                  android:textStyle="bold"
                  app:layout_constraintTop_toBottomOf="@+id/tv_date_header"
                  app:layout_constraintLeft_toLeftOf="@+id/tv_date_header"
                  app:layout_constraintBottom_toTopOf="@+id/tv_band_header"
                  />
      
              <TextView
                  android:id="@+id/tv_role_header"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_marginTop="10dp"
                  android:text="employee_role"
                  android:textColor="#999999"
                  android:textSize="12sp"
                  app:layout_constraintLeft_toLeftOf="@+id/tv_name"
                  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="11dp"
                  android:text="employee_band"
                  android:textColor="#999999"
                  android:textSize="12sp"
                  app:layout_constraintLeft_toLeftOf="@+id/tv_date"
                  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="role"
                  android:textColor="#000000"
                  android:textSize="14sp"
                  android:textStyle="bold"
                  app:layout_constraintLeft_toLeftOf="@+id/tv_role_header"
                  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="band"
                  android:textColor="#000000"
                  android:textSize="14sp"
                  android:textStyle="bold"
                  app:layout_constraintLeft_toLeftOf="@+id/tv_band_header"
                  app:layout_constraintTop_toBottomOf="@+id/tv_band_header" />
      
              <View
                  android:id="@+id/view_divider"
                  android:layout_width="0dp"
                  android:layout_height="1dp"
                  android:layout_marginTop="15dp"
                  android:background="#E1E4EA"
                  app:layout_constraintTop_toBottomOf="@+id/tv_role"
                  app:layout_constraintRight_toRightOf="parent"
                  app:layout_constraintLeft_toLeftOf="parent"/>
      
              <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"
                          />
      
                      <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="origin_address \n origin_address"
                          android:textColor="#000000"
                          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"
                          />
      
                      <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="destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address \n destination_address "
                          android:textColor="#000000"
                          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="justification_header"
                  android:textColor="#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="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="justification"
                  android:textColor="#000000"
                  android:textSize="14sp"
                  app:layout_constraintLeft_toLeftOf="@+id/tv_justification_header"
                  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="vehicle_type"
                  android:textColor="#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="vehicle"
                  android:textColor="#000000"
                  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="distance"
                  android:textColor="#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="duration"
                  android:textColor="#000000"
                  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="start_time"
                  android:textColor="#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="end_time"
                  android:textColor="#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="start_time"
                  android:textColor="#000000"
                  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="end_time"
                  android:textColor="#000000"
                  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="trip_distance"
                  android:textColor="#999999"
                  android:textSize="12sp"
                  app:layout_constraintTop_toBottomOf="@+id/tv_start_time"
                  app:layout_constraintLeft_toLeftOf="parent"/>
      
              <TextView
                  android:id="@+id/tv_edited_distance_header"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="edited_distance"
                  android:textColor="#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="distance"
                  android:textColor="#000000"
                  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="edited_distance"
                  android:textColor="#D15900"
                  android:textSize="14sp"
                  android:textStyle="bold"
                  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:textSize="14sp"
                  android:text="edit_reason"
                  app:layout_constraintRight_toRightOf="parent"
                  app:layout_constraintTop_toBottomOf="@+id/tv_distance" />
      
              <LinearLayout
                  android:id="@+id/ll_reject_reason"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:orientation="vertical"
                  app:layout_constraintLeft_toLeftOf="parent"
                  app:layout_constraintRight_toRightOf="parent"
                  app:layout_constraintTop_toBottomOf="@+id/tv_edit_reason"
                  app:layout_constraintBottom_toBottomOf="parent"
                  android:layout_marginBottom="10dp">
      
                  <TextView
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:text="manager_reject_reason"
                      android:textColor="#999999"
                      android:textSize="12sp" />
      
      
                  <TextView
                      android:id="@+id/tv_rejection_reason"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:text="rejection_reason"
                      android:textColor="#000000"
                      android:textSize="14sp" />
      
              </LinearLayout>
          </android.support.constraint.ConstraintLayout>
      </android.support.v4.widget.NestedScrollView>
          <Button
              android:id="@+id/bt_back"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_marginTop="10dp"
              android:gravity="center"
              android:text="Back"
              android:textAllCaps="true"
              app:layout_constraintLeft_toLeftOf="parent"
              app:layout_constraintTop_toBottomOf="@+id/NestedScrollView"
              app:layout_constraintBottom_toBottomOf="parent"
              android:layout_marginLeft="12dp"
              android:layout_marginBottom="10dp"
              android:layout_marginStart="12dp"/>
      </android.support.constraint.ConstraintLayout>
      

      【讨论】:

      • 我已经对布局进行了更改,我认为您的问题现在已经解决了。
      • 感谢 Jaspreet 付出的时间和努力,但我不需要将后退按钮放在滚动视图之外,因为要求是与其他视图一起滚动后退按钮..
      • 你可以查看我的另一篇文章,那个按钮在约束布局内。当目标地址大于源地址时不隐藏
      猜你喜欢
      • 1970-01-01
      • 2019-04-26
      • 2020-06-09
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      • 2019-12-23
      相关资源
      最近更新 更多