我在ConstraintLayout中有三个TextView,并留有边距将它们全部保留在屏幕的中央。由于某些原因,即使第一行中仍有剩余空间,TextViews中的文本也会被自动换行。这是预览中的布局外观:

android - 为什么我的TextViews早在ConstraintLayout中包装?-LMLPHP

这是运行时的实际外观:

android - 为什么我的TextViews早在ConstraintLayout中包装?-LMLPHP

您可以在TextViews的右侧看到多余的空间,文本可以放在第一行。请注意,设备和预览均适用于Nexus 5X。

这是此布局的XML:

<android.support.constraint.ConstraintLayout
     android:id="@+id/bullet_holder"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_marginEnd="45dp"
     android:layout_marginLeft="45dp"
     android:layout_marginRight="45dp"
     android:layout_marginStart="45dp"
     app:layout_constraintBottom_toBottomOf="parent"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintRight_toRightOf="parent"
     app:layout_constraintTop_toBottomOf="@+id/setup_intro_subheader"
     app:layout_constraintVertical_bias="0.23000002">

     <ImageView
         android:id="@+id/setup_intro_bullet_first"
         style="@style/TextAppearance.AppCompat.Headline"
         android:layout_width="4dp"
         android:layout_height="4dp"
         android:baseline="7dp"
         android:src="@drawable/circle"
         app:layout_constraintBaseline_toBaselineOf="@+id/setup_intro_bullet_first_text"
         app:layout_constraintLeft_toLeftOf="parent" />

     <TextView
         android:id="@+id/setup_intro_bullet_first_text"
         style="@style/TextAppearance.AppCompat.Subhead"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_marginLeft="6dp"
         android:layout_marginStart="6dp"
         android:text="@string/setup_intro_benefit_notification"
         android:textColor="@android:color/white"
         app:layout_constraintLeft_toRightOf="@+id/setup_intro_bullet_first"
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintTop_toTopOf="parent" />

     <ImageView
         android:id="@+id/setup_intro_bullet_second"
         style="@style/TextAppearance.AppCompat.Headline"
         android:layout_width="4dp"
         android:layout_height="4dp"
         android:baseline="7dp"
         android:src="@drawable/circle"
         app:layout_constraintBaseline_toBaselineOf="@+id/setup_intro_bullet_second_text"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toLeftOf="@+id/setup_intro_bullet_second_text" />

     <TextView
         android:id="@+id/setup_intro_bullet_second_text"
         style="@style/TextAppearance.AppCompat.Subhead"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_marginLeft="6dp"
         android:layout_marginStart="6dp"
         android:layout_marginTop="20dp"
         android:text="@string/setup_intro_benefit_backlog"
         android:textColor="@android:color/white"
         app:layout_constraintLeft_toRightOf="@+id/setup_intro_bullet_second"
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/setup_intro_bullet_first_text" />

     <ImageView
         android:id="@+id/setup_intro_bullet_third"
         style="@style/TextAppearance.AppCompat.Headline"
         android:layout_width="4dp"
         android:layout_height="4dp"
         android:baseline="7dp"
         android:src="@drawable/circle"
         app:layout_constraintBaseline_toBaselineOf="@+id/setup_intro_bullet_third_text"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toLeftOf="@+id/setup_intro_bullet_third_text" />

     <TextView
         android:id="@+id/setup_intro_bullet_third_text"
         style="@style/TextAppearance.AppCompat.Subhead"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_marginLeft="6dp"
         android:layout_marginStart="6dp"
         android:layout_marginTop="20dp"
         android:text="@string/setup_intro_benefit_browser"
         android:textColor="@android:color/white"
         app:layout_constraintLeft_toRightOf="@+id/setup_intro_bullet_third"
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/setup_intro_bullet_second_text" />

 </android.support.constraint.ConstraintLayout>

最佳答案

对于每个文本 View ,设置以下内容:

    android:breakStrategy="simple"

参见android:breakStrategy

这里更深层的问题是,为什么设计器默认情况下会显示与仿真器/设备不同的东西?

10-07 12:05