无法通过“fill_parent”获得适当的布局

我试图在Android中创build这个简单的布局。

在这里输入图像说明

A应该包装以适应其内容并将left|center_verticalalignment。

B应该尽可能扩大,填满所有的空白空间。

C应该是右alignment的,用wrap来填充它的内容并且也是alignmentcenter_vertical

这是我的布局:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:gravity="left|center_vertical"> <!-- A --> <ImageView android:id="@+id/example_item_icon" android:layout_width="48px" android:layout_height="48px"/> <!-- B --> <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="fill_parent" android:gravity="left|center_vertical" android:padding="5px"> <TextView android:id="@+id/example_item_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold"/> <TextView android:id="@+id/example_item_level_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold|italic" android:lines="1" android:textSize="10px"/> </LinearLayout> <!-- C --> <TextView android:id="@+id/example_item_count_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:textSize="14px"/> </LinearLayout> 

在这个布局中, C被推到屏幕外。 我怎样才能使这个布局工作?

Solutions Collecting From Web of "无法通过“fill_parent”获得适当的布局"

fill_parent的意思是“像父母一样大”,而不是“使用剩余的空白空间”。 而不是fill_parent,只需使用android:layout_width =“0dip”和android:layout_weight =“1”即可。

诀窍,使用相对布局…这里是一个例子(closures我的头顶 – 没有检查和缺less高度字段和垂直alignment设置,以便于查看重要的东西)。

 <relativelayout android:width="fillParent"> <textview android:id="@+id/left" android:text="left" android:width="wrap_content" android:layout_alignParentleft="true" /> <textview android:id="@+id/right" android:text="right" android:width="wrap_content" android:layout_alignParentright="true" /> <textview android:id="@+id/middle" android:text="middle" android:width="wrap_content" android:layout_alignleft="@id/right" android:layout_alignright="@id/left" /> </relativelayout> 

编辑:这里是与打字错误(它被testing为工作)

 <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/left" android:text="left" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" /> <TextView android:id="@+id/right" android:text="right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" /> <TextView android:id="@+id/middle" android:text="middle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/right" android:layout_toRightOf="@id/left" /> </RelativeLayout> 

尝试这个。 我用TextViewsreplace了ImageViews ,以便在XML编辑器中显示出来。 请注意,我保持“A”的48px宽度,这不是我认为你真的想要的。 用wrap_contentreplace它。

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:gravity="center_vertical"> <!-- A --> <TextView android:layout_height="48px" android:id="@+id/example_item_count_text2" android:textSize="14px" android:layout_weight="1" android:text="this is item a" android:textStyle="bold" android:layout_width="48px"> </TextView> <!-- B --> <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="fill_parent" android:gravity="center_vertical" android:layout_weight="1" android:padding="5px"> <TextView android:id="@+id/example_item_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="this is B" android:textStyle="bold"/> <TextView android:id="@+id/example_item_level_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="this should be underneath B" > </LinearLayout> <!-- C --> <TextView android:id="@+id/example_item_count_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="this is item c" android:layout_weight="1" android:textStyle="bold" android:textSize="14px"/> </LinearLayout> 

这是我的答案。 我只是将B上的layout_weight设置为1 。 很明显, layout_weight就像基于百分比的布局方法。 我不知道它是如何工作的,但这里是我的成品,看起来很棒:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:gravity="left|center_vertical"> <ImageView android:id="@+id/example_item_icon" android:layout_width="48px" android:layout_height="48px"/> <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="fill_parent" android:gravity="left|center_vertical" android:layout_weight="1" android:padding="5px"> <TextView android:id="@+id/example_item_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold"/> <TextView android:id="@+id/example_item_level_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold|italic" android:lines="1" android:textSize="10px"/> </LinearLayout> <TextView android:id="@+id/example_item_count_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:textSize="14px"/> </LinearLayout>