我有三个这样的元素:
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>
编辑:第二个元素和第三个元素必须对齐左边!
答案 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>