2013-04-05 39 views
0

非常简单的布局: 我有两个TextViews显示在一行中。布局在屏幕居中和两个字符串编程设置,首先是vairaible长度的字符串,而第二个字符串为空或(比方说)“X”:Android:LinearLayout(水平)切断最后一列

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="5dp" 
    android:gravity="center_horizontal" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/lblSelectionName" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ellipsize="end" 
     android:singleLine="true" 
     android:text="@string/empty" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/lblSelectionAttribute" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/empty" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

</LinearLayout> 

请注意,第一如果TextView的大小超过了TextView,则为了切断字符串而省略了TextView。 我希望是这样的:

“普通文本| X”(在屏幕上居中)

“海文本必须... | X”(集中在屏幕上 - 填充屏幕)

但是会发生什么情况是:第一个TextView偏移但填满了整个屏幕(-width),第二个TextView离开屏幕(分别包装到下一行)。 无论如何,使用“体重”无济于事。将layout_height设置为固定值(例如15dp)也无济于事......

任何建议的人?

回答

1
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="5dp" 
    android:orientation="horizontal" 
    android:layout_gravity="center_horizontal" 
    > 

    <TextView 
     android:id="@+id/lblSelectionName" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:ellipsize="end" 
     android:singleLine="true" 
     android:text="asdhsagdkgfhgfhghg" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <TextView 
     android:id="@+id/lblSelectionAttribute" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="X" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

</LinearLayout> 
+0

感谢您的快速反应,但正如我上面提到...设置重量并不能真正帮助,因为设置重量=“1”,并=“0”导致: “普通文本| X “ ”超大文本...... | X“ 在这两种情况下,布局都采用全屏幕宽度,并将第一个TextView放在最右边的可用空间的最左边,第二个... 我试过重力(”右“为第一个TextView和”左“为第二个) - 没有帮助... – user2248357 2013-04-05 09:59:26

+0

编辑答案,在LinearLayout中使用layout_gravity而不是重力 – 2013-04-05 10:24:44

+0

这很有效! (Half:o) 由于某些原因,在设置TextView的文本后,布局并未布置。那是:第一次,文本被设置,它看起来像“普通文本| X”,在将文本更改为“特大...”后,布局采用了相同的布局,这将导致TextView大大减少到“早”......看起来像:“extra ... | X”。 我打电话给“forceLayout()”两个TextViews和everythin'都很好! 非常感谢Arun! – user2248357 2013-04-05 11:25:27