我需要在布局中并排放置两个textview,并且必须遵守两个规则:

  • Textview2必须始终完整显示。
  • 如果布局中没有足够的空间,则必须裁剪
  • Textview1。

  • 例子:

    Textview1 | textview2

    Teeeeeeeeeeeeeeeeeeeeeeeextview1 ... | textview2

    有任何想法吗?

    我发现可能可行的唯一方法是使用textview2的文本创建一个drawable并将其影响为对textview1的coumpoundDrawable。

    最佳答案

    将两个TextView包裹在LinearLayout中。将布局权重0分配给textview2,将布局权重1分配给textview2。

    有关更多信息,请参见此处:Linear Layout Weight

    如果使用下面的示例,您会看到LinearLayout首先将空间分配给textview2(权重为0),然后将剩余的空间分配给textview1(权重为1)。如果没有足够的空间容纳两个TextView,则先将textview1省略。在下面的示例中,只有当LinearLayout小于textview2本身的大小时,textview2才会变为椭圆形。为FrameLayout分配特定的布局宽度,然后看看会发生什么。

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:background="#FF0000FF">
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="#FFFF0000"
                android:ellipsize="end"
                android:maxLines="1"
                android:text="textview1" />
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0"
                android:background="#FF00FF00"
                android:ellipsize="end"
                android:maxLines="1"
                android:text="textview2" />
        </LinearLayout>
    
    </FrameLayout>
    

    关于android - 将两个textview并排放置在布局中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21778632/

    10-11 20:26