无法在布局中的一行中显示元素

时间:2019-05-30 05:18:27

标签: android android-layout android-linearlayout

我的Android布局如下:

<LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="2dp"
            android:orientation="horizontal">
            <TextView
                android:id="@+id/notification_content"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left|bottom"
                android:layout_marginEnd="1dp"
                android:ellipsize="end"
                android:fadingEdge="horizontal"
                android:maxLines="4"
                android:singleLine="false"
                android:textAppearance="@style/Ds6"
                android:textColor="@color/notification_ds6_secondary_text"
                tools:text="Watched item ends in 6 minutes in "
                android:visibility="visible"
                tools:ignore="Deprecated"/>

            <Chronometer
                android:id="@+id/notification_countdown"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
                android:gravity="left|bottom"
                android:maxLines="1"
                android:textAppearance="@style/Ds6"
                android:textColor="@color/notification_ds6_secondary_text"
                android:textSize="@dimen/TextSizeSmall"
                android:visibility="visible"
                tools:text="10:02 AM" />

            <Chronometer
                android:id="@+id/notification_countdown_60s"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="left|bottom"
                android:gravity="left"
                android:maxLines="1"
                android:textColor="@color/alert_color"
                android:textAppearance="@style/Ds6"
                android:textSize="@dimen/TextSizeSmall"
                android:visibility="visible"
                tools:text="10:02 AM" />
            <TextView
                android:id="@+id/notification_time_expired"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="left|bottom"
                android:text="00:00"
                android:textColor="@color/notification_ds6_disabled_text"
                android:textAppearance="@style/Ds6"
                android:textSize="@dimen/TextSizeSmall"
                android:visibility="visible" />
            </LinearLayout>

TextView and other views

我希望文本视图内容能够正确换行,以适应将1号计时器,2号铬笔和3号计时器显示在一行上。对于较长的文本字符串则不会发生这种情况。

但是如果我减小文本字符串的长度,如下所示,那么我可以在一行中看到所有元素。如何在一行中显示所有元素?我希望文本换行,但是两个天文钟和文本视图2必须与第一个文本视图在同一行。

这将在通知远程视图中显示,因此我不能使用ConstraintLayout。我只能使用FrameLayout,RelativeLayout和LinearLayout。

Single line elements

1 个答案:

答案 0 :(得分:0)

尝试在您的android:layout_width="0dp" android:layout_weight="1"中设置notification_contentTextView

尝试这种方式

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="2dp"
    android:orientation="horizontal">
    <TextView
        android:id="@+id/notification_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_gravity="left|bottom"
        android:layout_marginEnd="1dp"
        android:ellipsize="end"
        android:fadingEdge="horizontal"
        android:maxLines="4"
        android:singleLine="false"
        android:textColor="@color/colorPrimary"
        tools:text="Watched item ends in 6 minutes in "
        android:visibility="visible"
        tools:ignore="Deprecated"/>

    <Chronometer
        android:id="@+id/notification_countdown"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:gravity="left|bottom"
        android:maxLines="1"
        android:textColor="@color/colorPrimary"
        android:visibility="visible"
        tools:text="10:02 AM" />

    <Chronometer
        android:id="@+id/notification_countdown_60s"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="left|bottom"
        android:gravity="left"
        android:maxLines="1"
        android:textColor="@color/colorAccent"
        android:visibility="visible"
        tools:text="10:02 AM" />
    <TextView
        android:id="@+id/notification_time_expired"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="left|bottom"
        android:text="00:00"
        android:textColor="@color/colorPrimary"
        android:visibility="visible" />
</LinearLayout>