多行 TextView 与其他控件错误对齐
Multiline TextView is wrong aligned with other controls
我想要这个布局:
但是我得到了这个:
如您所见,TextView
对齐错误,左侧不可见。我尝试更改填充、重力、宽度、替换容器(更改为 LinearLayout
),但没有任何帮助。
<?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="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/green_chat_layout_bg"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:paddingRight="10dp"
android:paddingBottom="10dp"
>
<TextView
android:id="@+id/user_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/night_rider"
android:textSize="@dimen/normal_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/user_date"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="You Might Also Like. How to generate javadoc comments in Android Studio"
/>
<TextView
android:id="@+id/user_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="1dp"
android:layout_marginLeft="1dp"
android:alpha="0.4"
android:textColor="@color/black"
android:textSize="@dimen/small_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/seen"
app:layout_constraintStart_toEndOf="@id/user_text"
tools:text="16:25"
/>
<ImageView
android:id="@+id/seen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/user_date"
tools:srcCompat="@drawable/ic_chat_message_seen"
/>
</android.support.constraint.ConstraintLayout>
短文本右对齐。
当您使用wrap_content
时,TextView 意识到文本太长,因此它分成两行并占据整个屏幕space。由于还有其他视图受到约束,ConstraintLayout 决定将 TextView 向左推一点。
将 TextView
宽度更改为 0dp
并将布局宽度设置为 match_parent
。
Using 0dp, which is the equivalent of "MATCH_CONSTRAINT"
When a dimension is set to MATCH_CONSTRAINT, the default behavior is to have the resulting size take all the available space.
https://developer.android.com/reference/android/support/constraint/ConstraintLayout
您需要将您的父布局宽度设置为match_parent
然后给textview
match_constraint
。所以你的布局将是 fine.Change 你的布局是这样的:
<?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="wrap_content"
android:background="@drawable/green_chat_layout_bg"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:paddingRight="10dp"
android:paddingBottom="10dp">
<TextView
android:id="@+id/user_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:padding="5dp"
android:textColor="@color/night_rider"
android:textSize="@dimen/normal_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/user_date"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="You Might Also Like. How to generate javadoc comments in Android Studio" />
<TextView
android:id="@+id/user_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:alpha="0.4"
android:textColor="@color/black_color"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/seen"
tools:text="16:25" />
<ImageView
android:id="@+id/seen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:srcCompat="@drawable/ic_group" />
</android.support.constraint.ConstraintLayout>
您的布局将如下所示:
我想要这个布局:
但是我得到了这个:
如您所见,TextView
对齐错误,左侧不可见。我尝试更改填充、重力、宽度、替换容器(更改为 LinearLayout
),但没有任何帮助。
<?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="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/green_chat_layout_bg"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:paddingRight="10dp"
android:paddingBottom="10dp"
>
<TextView
android:id="@+id/user_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/night_rider"
android:textSize="@dimen/normal_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/user_date"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="You Might Also Like. How to generate javadoc comments in Android Studio"
/>
<TextView
android:id="@+id/user_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="1dp"
android:layout_marginLeft="1dp"
android:alpha="0.4"
android:textColor="@color/black"
android:textSize="@dimen/small_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/seen"
app:layout_constraintStart_toEndOf="@id/user_text"
tools:text="16:25"
/>
<ImageView
android:id="@+id/seen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/user_date"
tools:srcCompat="@drawable/ic_chat_message_seen"
/>
</android.support.constraint.ConstraintLayout>
短文本右对齐。
当您使用wrap_content
时,TextView 意识到文本太长,因此它分成两行并占据整个屏幕space。由于还有其他视图受到约束,ConstraintLayout 决定将 TextView 向左推一点。
将 TextView
宽度更改为 0dp
并将布局宽度设置为 match_parent
。
Using 0dp, which is the equivalent of "MATCH_CONSTRAINT"
When a dimension is set to MATCH_CONSTRAINT, the default behavior is to have the resulting size take all the available space.
https://developer.android.com/reference/android/support/constraint/ConstraintLayout
您需要将您的父布局宽度设置为match_parent
然后给textview
match_constraint
。所以你的布局将是 fine.Change 你的布局是这样的:
<?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="wrap_content"
android:background="@drawable/green_chat_layout_bg"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:paddingRight="10dp"
android:paddingBottom="10dp">
<TextView
android:id="@+id/user_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:padding="5dp"
android:textColor="@color/night_rider"
android:textSize="@dimen/normal_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/user_date"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="You Might Also Like. How to generate javadoc comments in Android Studio" />
<TextView
android:id="@+id/user_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:alpha="0.4"
android:textColor="@color/black_color"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/seen"
tools:text="16:25" />
<ImageView
android:id="@+id/seen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:srcCompat="@drawable/ic_group" />
</android.support.constraint.ConstraintLayout>
您的布局将如下所示: