android约束布局,椭圆无法按预期工作

问题描述 投票:0回答:2

试图使用constraintlayout,但是无法正确显示椭圆。

它有三列,左边的图标;中间部分(有两行);右侧图标;

左图标应使父母左对齐,右图标应使父母右对齐,中间部分应左对齐左图标。

| [left icon] | [first line][B]       | [right icon] |
|             | [second line][other]  |              |

中间部分“第一行......”,如果文字太长,应显示省略号,以及文本太长的“第二行...”也应显示省略号

enter image description here

但是当文本太长时,第一行显示在右侧图标上方,第二行显示省略号,但整行也显示在右侧图标上方,尽管它们具有

app:layout_constraintRight_toLeftOf="@+id/_logo"

设置为放置在右侧图标(“ @ + id / _logo”)的左侧

为什么代码不执行它应该执行的操作,或某些不正确的操作?

enter image description here

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>


android-constraintlayout ellipsis
2个回答
0
投票

这是用于发布Usman Zafer解决方案的屏幕截图:

enter image description here

第二行中的time_msg部分未左对齐。


0
投票

这里是具有所需更新的布局。

 <?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>
© www.soinside.com 2019 - 2024. All rights reserved.