我有列表视图。 Row有2个(以及将来有更多)文本视图。我的目标是,如果第一个文本太长,则应显示椭圆,但第二个文本视图应始终可见。我通过列临时解决了这个问题(权重和文本视图的权重百分比)。但我的目标是:当文本很短时,第二个文本视图应该出现在第一个旁边(参见第一个附加屏幕,它是假的 - 由第一个文本视图的硬编码最大宽度创建)。问题是,当第一个文本太长时,第二个文本就会消失。我尝试了很多配置,包括linearlayout,relativelayout,sublayouts等,但最后我卡住了。任何的想法?这是行的简单xml:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:text="Some very very long long long long long long long"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#C03518"
android:text="10"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
这是具有relativelayout的代码,它也不起作用:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/TextView01"
android:layout_alignParentLeft="true"
android:ellipsize="end"
android:singleLine="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some very very long long long long long long long"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/TextView02"
android:layout_toRightOf="@id/TextView01"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#C03518"
android:text="10"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
此致
答案 0 :(得分:0)
您还可以使用这样的自定义流布局: http://karimvarela.com/2012/12/01/android-creating-a-flowlayout/
答案 1 :(得分:0)
您需要为列设置权重。像这样:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/TextView01"
android:layout_width="0"
android:layout_height="wrap_content"
android:layout_weight="9"
android:ellipsize="end"
android:singleLine="true"
android:text="Some very very long long long long long long long"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/TextView02"
android:layout_width="0"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#C03518"
android:text="10"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
这意味着第一列将占据屏幕的90%,第二列占据10%。 或者,您可以使用表格布局并将stretch_columns设置为0,1。 类似的东西:
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:stretch_columns="0,1" >
<TableRow>
<TextView
android:id="@+id/TextView01"
android:layout_width="0"
android:layout_height="wrap_content"
android:layout_weight="9"
android:ellipsize="end"
android:singleLine="true"
android:text="Some very very long long long long long long long"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/TextView02"
android:layout_width="0"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#C03518"
android:text="10"
android:textAppearance="?android:attr/textAppearanceMedium" />
</TableRow>
</TableLayout>