首页 > 解决方案 > TextView 在 LinearLayout 内将其他 View 推到屏幕外

问题描述

我面临一个问题,LinearLayoutTextView视图从屏幕上推开。我希望文本在其后留下不到 100dp 的空间时进入下一行。我不能使用layout_weight,因为我在后面使用背景TextView,如果我固定权重,那么即使文本太小,背景也会跨越那么多空间。这是我的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_margin="4dp">
    <TextView
        android:id="@+id/txtReceiverMessage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:text="longmessage longmessage longmessage longmessage longmessage longmessage longmessage longmessage longmessage "
        android:background="@drawable/receiver_chat_gradient_background"
        android:padding="8dp"
        android:textColor="@color/white"/>
    <View
        android:layout_width="100dp"
        android:layout_height="match_parent"/>
</LinearLayout>

我想要的是

在此处输入图像描述

我得到了什么:

在此处输入图像描述

标签: androidtextviewandroid-linearlayout

解决方案


您只需要添加值为 1layout_weightTextView

修改后的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="4dp"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/txtReceiverMessage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/receiver_chat_gradient_background"
        android:layout_weight="1"
        android:padding="8dp"
        android:text="longmessage longmessage longmessage longmessage longmessage longmessage longmessage longmessage longmessage "
        android:textColor="@color/white"
        android:textSize="16sp" />

    <View
        android:layout_width="100dp"
        android:layout_height="match_parent" />
</LinearLayout>

推荐阅读