无法在布局中以单行显示元素
Unable to show the elements in a single line in a layout
我的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>
我希望文本视图内容正确换行以适应 Chronometer #1、Chrometer #2 和 Chronometer #3 显示在一行中。较长的文本字符串不会发生这种情况。
但是如果我减少文本字符串的长度,如下所示,我可以在一行中看到所有元素。如何在一行中显示所有元素?我希望文本换行,但两个计时器和文本视图 # 2 必须与第一个文本视图位于同一行。
这将显示在通知远程视图中,因此我无法使用 ConstraintLayout。我只能使用 FrameLayout、RelativeLayout 和 LinearLayout。
尝试在 notification_content
TextView
中设置 android:layout_width="0dp"
和 android:layout_weight="1"
试试这个方法
<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>
我的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>
我希望文本视图内容正确换行以适应 Chronometer #1、Chrometer #2 和 Chronometer #3 显示在一行中。较长的文本字符串不会发生这种情况。
但是如果我减少文本字符串的长度,如下所示,我可以在一行中看到所有元素。如何在一行中显示所有元素?我希望文本换行,但两个计时器和文本视图 # 2 必须与第一个文本视图位于同一行。
这将显示在通知远程视图中,因此我无法使用 ConstraintLayout。我只能使用 FrameLayout、RelativeLayout 和 LinearLayout。
尝试在 notification_content
TextView
android:layout_width="0dp"
和 android:layout_weight="1"
试试这个方法
<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>