2017-08-02 43 views
0

有两个小部件(在我的示例中为TextView s)。第一个小部件的宽度是固定的,第二个小部件应该和第一个小部件一样宽。layout_constraintLeft_toLeftOf和layout_constraintRight_toRightOf不会使视图像约束一样宽

考虑下面的代码片段:

RelativeLayout的。

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

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="192dp" 
     android:layout_height="wrap_content" 
     android:background="#ccc" 
     android:text="Short message" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@id/textView" 
     android:layout_alignRight="@id/textView" 
     android:layout_below="@id/textView" 
     android:layout_marginTop="16dp" 
     android:background="#aaa" 
     android:text="Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book" /> 
</RelativeLayout> 

enter image description here

ConstraintLayout。

<?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" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="192dp" 
     android:layout_height="wrap_content" 
     android:background="#ccc" 
     android:text="Short message" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp" 
     android:layout_marginTop="16dp" 
     android:background="#aaa" 
     android:text="Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book" 
     app:layout_constraintLeft_toLeftOf="@+id/textView" 
     app:layout_constraintRight_toRightOf="@+id/textView" 
     app:layout_constraintTop_toBottomOf="@+id/textView" 
     app:layout_constraintHorizontal_bias="0.49" /> 
</android.support.constraint.ConstraintLayout> 

enter image description here

正如你可以在第二图片中看到,第二小部件不一样宽,第一小。为什么?我以为app:layout_constraintLeft_toLeftOf="@+id/textView" app:layout_constraintRight_toRightOf="@+id/textView"会做到这一点。

回答

1

更改第二的TextView如下:

<TextView 
     android:id="@+id/textView2" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="16dp" 
     android:background="#aaa" 
     android:text="Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book" 
     app:layout_constraintLeft_toLeftOf="@+id/textView" 
     app:layout_constraintRight_toRightOf="@+id/textView" 
     app:layout_constraintTop_toBottomOf="@+id/textView" 
     app:layout_constraintHorizontal_bias="0.486" /> 

集layout_width = 0匹配的约束,如果要对齐两个TextView的

android:layout_width="0dp" 
你不应该设置margin
2

尝试设置android:layout_width为0dp 和app:layout_constraintWidth_default="wrap"。同时删除左右边距。