Android - 椭圆到左侧textView

时间:2014-02-14 17:09:45

标签: android android-layout

我有三个这样的元素:

ELEMENT1 - ELEMENT3

第二个元素是“ - ”

默认使用ellipse Android将截断ELEMENT3,但我想截断ELEMENT1。有没有办法实现这个目标?

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="left">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:singleLine="true"
                android:text="CIAO CIAO CIAO CIAO CIAO CIAO CIAO CIAO"
                android:textColor="@color/text_content" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:singleLine="true"
                android:text=" - "
                android:textColor="@color/text_content" />
            </LinearLayout>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:singleLine="true"
            android:text="CIAO CIAO CIAO CIAO CIAO CIAO"
            android:ellipsize="none"
            android:textColor="@color/important_content"/>
    </LinearLayout>

编辑:第二个元素和第三个元素必须对齐左边!

1 个答案:

答案 0 :(得分:5)

您可以使用布局权重属性来控制LinearLayout中每个元素的“重要性”。有关详细信息,请参阅此处:Linear Layout Weight

我已经采用了下面的xml布局并对其进行了一些编辑,以生成我认为您正在寻找的结果。请注意,TextView1的布局权重为1,而TextView2和TextView3的布局权重为0.这样做是强制LinearLayout首先为TextView2和TextView3分配空间,然后将剩余的空间分配给TextView1。因此,TextView1是首先进行椭圆化的元素。

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/TextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:maxLines="1"
        android:scrollHorizontally="true"
        android:layout_weight="1"
        android:text="element1element1element1" />

    <TextView
        android:id="@+id/TextView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:scrollHorizontally="true"
        android:layout_weight="0"
        android:text=" - " />

    <TextView
        android:id="@+id/TextView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="none"
        android:maxLines="1"
        android:scrollHorizontally="true"
        android:layout_weight="0"
        android:text="element3element3element3" />
</LinearLayout>