试图使用constraintlayout,但是无法正确显示椭圆。
它有三列,左边的图标;中间部分(有两行);右侧图标;
左图标应使父母左对齐,右图标应使父母右对齐,中间部分应左对齐左图标。
| [left icon] | [first line][B] | [right icon] |
| | [second line][other] | |
中间部分“第一行......”,如果文字太长,应显示省略号,以及文本太长的“第二行...”也应显示省略号
但是当文本太长时,第一行显示在右侧图标上方,第二行显示省略号,但整行也显示在右侧图标上方,尽管它们具有
app:layout_constraintRight_toLeftOf="@+id/_logo"
设置为放置在右侧图标(“ @ + id / _logo”)的左侧
为什么代码不执行它应该执行的操作,或某些不正确的操作?
xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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:id="@+id/_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="0dp"
android:layout_marginBottom="20dp"
android:background="?android:attr/selectableItemBackground"
android:paddingStart="20dp"
android:paddingEnd="20dp"
tools:background="#00880088"
>
<View android:id="@+id/top_divider"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_marginBottom="20dp"
android:background="#888"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/_top_horizontal_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintTop_toTopOf="@+id/top_divider"
app:layout_constraintGuide_begin="@dimen/social_content_padding" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_begin="36dp" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/_top_horizontal_guideline_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintTop_toTopOf="@+id/top_divider"
app:layout_constraintGuide_begin="52dp" />
<ImageView
android:id="@+id/_avatar"
android:layout_width="@dimen/social_avatar_size"
android:layout_height="@dimen/social_avatar_size"
android:layout_marginStart="0dp"
android:scaleType="fitXY"
android:src="@drawable/ic_share_blue"
app:layout_constraintEnd_toStartOf="@+id/_guideline"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintTop_toTopOf="@+id/_top_horizontal_guideline"
tools:background="#ff0000"
/>
<TextView
android:id="@+id/_first_line"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:clickable="true"
android:ellipsize="end"
android:maxLines="1"
android:textSize="14sp"
app:layout_constraintTop_toTopOf="@+id/_top_horizontal_guideline"
app:layout_constraintStart_toEndOf="@+id/_guideline"
app:layout_constraintRight_toLeftOf="@+id/_check_icon"
tools:text="First line, more text, asdfsdfa eee 888 eee 888 " />
<ImageView
android:id="@+id/_check_icon"
android:layout_width="14dp"
android:layout_height="14dp"
android:layout_marginLeft="3dp"
android:layout_marginTop="3dp"
android:layout_marginRight="3dp"
app:layout_constraintBottom_toBottomOf="@+id/_first_line"
app:layout_constraintLeft_toRightOf="@id/_first_line"
app:layout_constraintRight_toLeftOf="@+id/_logo"
app:layout_constraintTop_toTopOf="@+id/_first_line"
app:srcCompat="@drawable/ic_pause"
tools:background="#ff0000"
/>
<TextView
android:id="@+id/_second_line"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:ellipsize="end"
android:maxWidth="220dp"
android:maxLines="1"
android:textSize="12sp"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintLeft_toRightOf="@+id/_guideline"
app:layout_constraintRight_toLeftOf="@+id/_msg_time"
app:layout_constraintTop_toBottomOf="@+id/_first_line"
app:layout_constraintBottom_toTopOf="@+id/_top_horizontal_guideline_2"
tools:text="Second line, test long text more more more eee 888 ===" />
<TextView
android:id="@+id/_msg_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:layout_marginRight="3dp"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/_second_line"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toRightOf="@id/_second_line"
app:layout_constraintRight_toLeftOf="@+id/_logo"
app:layout_constraintTop_toTopOf="@+id/_second_line"
tools:text=" \u2039 30 Nov 2018 \u203A" />
<ImageView
android:id="@+id/_logo"
android:layout_width="@dimen/social_logo_size"
android:layout_height="@dimen/social_logo_size"
android:layout_marginLeft="3dp"
android:layout_marginTop="2dp"
android:layout_marginRight="0dp"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintLeft_toRightOf="@id/_check_icon"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/_top_horizontal_guideline"
app:layout_constraintBottom_toTopOf="@+id/_top_horizontal_guideline_2"
tools:background="#33ff00ff"
app:srcCompat="@drawable/ic_rotate" />
<TextView
android:id="@+id/_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="28dp"
android:layout_marginEnd="8dp"
android:clickable="true"
android:lineSpacingMultiplier="1.1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="@+id/_guideline"
app:layout_constraintTop_toBottomOf="20dp"
android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." />
</androidx.constraintlayout.widget.ConstraintLayout>
这里是具有所需更新的布局。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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:id="@+id/_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="0dp"
android:layout_marginBottom="20dp"
android:background="?android:attr/selectableItemBackground"
android:paddingStart="20dp"
android:paddingEnd="20dp"
tools:background="#00880088"
>
<View android:id="@+id/top_divider"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_marginBottom="20dp"
android:background="#888"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/_top_horizontal_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintTop_toTopOf="@+id/top_divider"
app:layout_constraintGuide_begin="@dimen/social_content_padding" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_begin="36dp" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/_top_horizontal_guideline_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintTop_toTopOf="@+id/top_divider"
app:layout_constraintGuide_begin="52dp" />
<ImageView
android:id="@+id/_avatar"
android:layout_width="@dimen/social_avatar_size"
android:layout_height="@dimen/social_avatar_size"
android:layout_marginStart="0dp"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher_foreground"
app:layout_constraintEnd_toStartOf="@+id/_guideline"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintTop_toTopOf="@+id/_top_horizontal_guideline"
tools:background="#ff0000"
/>
<TextView
android:id="@+id/_first_line"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:clickable="true"
android:ellipsize="end"
android:maxLines="1"
android:textSize="14sp"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintTop_toTopOf="@+id/_top_horizontal_guideline"
app:layout_constraintStart_toStartOf="@+id/_guideline"
app:layout_constraintEnd_toStartOf="@+id/_check_icon"
app:layout_constraintWidth_default="wrap"
tools:text="first" />
<ImageView
android:id="@+id/_check_icon"
android:layout_width="14dp"
android:layout_height="14dp"
android:layout_marginLeft="3dp"
android:layout_marginTop="3dp"
android:layout_marginRight="3dp"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintBottom_toBottomOf="@+id/_first_line"
app:layout_constraintLeft_toRightOf="@id/_first_line"
app:layout_constraintRight_toLeftOf="@+id/_logo"
app:layout_constraintTop_toTopOf="@+id/_first_line"
app:srcCompat="@drawable/ic_launcher_foreground"
tools:background="#ff0000"
/>
<TextView
android:id="@+id/_second_line"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:ellipsize="end"
android:maxLines="1"
android:textSize="12sp"
app:layout_constraintWidth_default="wrap"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="@+id/_guideline"
app:layout_constraintEnd_toStartOf="@+id/_msg_time"
app:layout_constraintTop_toBottomOf="@+id/_first_line"
app:layout_constraintBottom_toTopOf="@+id/_top_horizontal_guideline_2"
tools:text="second" />
<TextView
android:id="@+id/_msg_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:layout_marginRight="3dp"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/_second_line"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toRightOf="@id/_second_line"
app:layout_constraintRight_toLeftOf="@+id/_logo"
app:layout_constraintTop_toTopOf="@+id/_second_line"
tools:text=" \u2039 30 Nov 2018 \u203A" />
<ImageView
android:id="@+id/_logo"
android:layout_width="@dimen/social_logo_size"
android:layout_height="@dimen/social_logo_size"
android:layout_marginLeft="3dp"
android:layout_marginTop="2dp"
android:layout_marginRight="0dp"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/_top_horizontal_guideline"
app:layout_constraintBottom_toTopOf="@+id/_top_horizontal_guideline_2"
tools:background="#33ff00ff"
app:srcCompat="@drawable/ic_launcher_foreground" />
<TextView
android:id="@+id/_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="28dp"
android:layout_marginEnd="8dp"
android:clickable="true"
android:lineSpacingMultiplier="1.1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="@+id/_guideline"
app:layout_constraintTop_toBottomOf="@+id/_top_horizontal_guideline_2"
android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." />
</androidx.constraintlayout.widget.ConstraintLayout>