在布局中并排放置两个文本视图

时间:2014-02-14 11:50:36

标签: android textview

我有两个文本视图需要在布局中并排放置,我必须遵守两条规则:

  • Textview2需要始终完整显示。

  • 如果布局中没有足够的空间,则必须裁剪Textview1。

示例:

Textview1 | textview2

... Teeeeeeeeeeeeeeeeeeeextview1 | textview2

有什么想法吗?

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

4 个答案:

答案 0 :(得分:50)

将两个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>

答案 1 :(得分:6)

为什么你需要那个可绘制的?选项:您可以使用具有固定宽度的textview1并对结尾进行椭圆化..:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/textview1"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:lines="1"
        android:padding="2dp" />


    <TextView
        android:id="@+id/textview2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/textview1"
        android:padding="2dp" />

</RelativeLayout>  

答案 2 :(得分:1)

Request URL: https://qr-generator.qrcode.studio/qr/custom
Request Method: POST

答案 3 :(得分:0)

<?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="match_parent"
    android:gravity="right"
    android:orientation="horizontal" >

    <View
        android:layout_width="0dp"
        android:layout_height="wrap_content" 
        android:layout_weight="1"/>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/holo_green_light"
        android:singleLine="true"
        android:text="textView1" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/holo_blue_light"
        android:singleLine="true"
        android:text="textView2" />

</LinearLayout>

修改:

简短textView1文字的输出:

enter image description here

长textView1文本的输出:

enter image description here