【问题标题】:Why are my TextViews wrapping early in a ConstraintLayout?为什么我的 TextViews 会在 ConstraintLayout 中提前包装?
【发布时间】:2017-10-16 09:29:47
【问题描述】:

我在一个 ConstraintLayout 中有三个 TextView,它们的边距使它们都保持在屏幕的中心。出于某种原因,TextViews 中的文本被提前包装,即使第一行仍有空间。下面是布局应该在预览中的样子:

这是它在运行时的实际外观:

您可以在 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>

【问题讨论】:

  • @pskink Min SDK 为 15,Target SDK 为 26,设备和布局预览为 26

标签: android android-layout android-constraintlayout


【解决方案1】:

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

    android:breakStrategy="simple"

android:breakStrategy

这里更深层次的问题是,为什么设计器默认显示的东西与模拟器/设备不同?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 2021-06-26
    • 2022-01-22
    • 2016-03-04
    相关资源
    最近更新 更多