类型“<fill_parent> <wrap_content>”的布局</wrap_content> </fill_parent>

时间:2011-11-30 12:40:32

标签: android layout

不确定这个问题标题清楚我的意思,所以这里有详细信息。

我想要实现的是简单的布局,两个TextView控件一个接一个地水平对齐。第一个TextView可能包含几行文本,第二个TextView只包含一个数字。

第二个TextView应始终具有显示其内容所需的宽度,与右侧对齐,高度应等于第一个TextView的高度,以便我可以垂直居中显示数据。第一个TextView应该占用剩余空间(宽度)并根据需要垂直拉伸。

示例1:

  ---------------------------------
  |Small Text.                 123|
  ---------------------------------

示例2:

  ---------------------------------
  |Long Text starts here ....     |
  |... continues here .......  123|
  |... and finishes here ....     |
  ---------------------------------

水平方向的LinearLayout在这里不好用,因为它从左到右放置控件。在这种情况下,我需要首先将wrap_content设置为第二个TextView,然后将fill_parent设置为第一个TextView。

使用RelativeLayout玩我也无法描述布局。

我无法在这里使用layout_weight方法,因为我不知道第二个TextView中的数据长度:在一种情况下,它可以是1个字符,在另一个中 - 8个字符。因此,在1个字符的情况下,我将使用未使用的空间。

那么,我有机会建立这样的布局吗?

2 个答案:

答案 0 :(得分:4)

如下所示的布局可以帮到你:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:singleLine="false"
        android:text="TextView" />
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:gravity="center_vertical|right"
        android:text="TextView" />
</LinearLayout>

答案 1 :(得分:-1)

这里使用minWidth和maxWidth属性非常有用。