为什么我的TextView在ConstraintLayout早期包装?
问题描述:
我在一个ConstraintLayout中有三个TextViews,边距使它们全部保持在屏幕的中心。出于某种原因,TextViews中的文本被提前打包,即使第一行仍然有空间。以下是布局应该看起来像预览:为什么我的TextView在ConstraintLayout早期包装?
这里是运行时,它如何实际上看起来:
你可以看到在额外的空间TextView的右侧,文本可以放在第一行。请记住设备和预览都适用于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>
答
对于您的每一个文本视图,设置如下:
android:breakStrategy="simple"
这里更深层次的问题是设计师为什么默认情况下显示与仿真器/设备不同的东西?
@pskink Min SDK是15,目标SDK是26,设备和布局预览是26 –