在Android中当一行显示两个TextView时,第一个可“…”,而第二个必须全部显示这种布局时:
<RelativeLayout
android:layout_width = "wrap_content" --1: fill_parent
android:layout_height = "wrap_content"
android:background="#cccccc"
android:padding="20dip">
<LinearLayout
android:layout_width = "wrap_content" --- 2: fill_parent
android:layout_height = "wrap_content"
android:orientation = "horizontal" >
<TextView
android:id = "@+id/item_text_one"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_weight = "1"
android:ellipsize = "end"
android:singleLine = "true"
android:text = "text1的效果 效果 效果 效果 效果 效果 效果" />
<TextView
android:id = "@+id/item_text_two"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_marginLeft = "20dip"
android:text = "text2的效果" />
--3: android:gravity="right" 1,2,3位置修改,即可使text2不论text1文本内容多少都可以一直居右显示
</LinearLayout>
</RelativeLayout>
运行结果为:
看上面代码可知,text1使用了weight属性,并置为1,text2没有使用,默认weight为0。
其实,layout_weight属性的意思就是说:android系统会按照两个TextView的warp_content来分配宽度,剩下的因为只有text1的weight = 1,所以剩下的空间都留给了text1,就能达成这种效果。