LinearLayout空间分布与图像,文本和图像

时间:2011-09-12 07:06:15

标签: android android-layout android-linearlayout

我有一个包含2个图像视图和文本视图的线性布局。我想在布局行中进行适当的空间分配。它应该是下面的想法

______________________________
|IV|                       |IV|
|  | <-- Text View ----->  |  |
_______________________________

我怎样才能做到这一点?在拟合两幅图像后,我希望将所有空间分配给textview。

以下是我的尝试,但不起作用。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:orientation="horizontal"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_below="@+id/addTrip"
    android:layout_weight="1" android:layout_height="wrap_content">

    <ImageView android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_gravity="left"
        android:src="@drawable/icon" />
    <TextView android:layout_weight="1" android:id="@+id/textView1"
        android:clickable="true" android:layout_width="0dp"
        android:layout_height="wrap_content" android:gravity="right"
        android:text="Enter trip name"></TextView>
    <ImageView android:id="@+id/imageView1"
        android:layout_gravity="right" android:src="@drawable/edit"
        android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
</LinearLayout>

我使用它作为布局填充物。

 ArrayList<TripInfo> trips = inst.getListOfTrips(); //reading from DB


        for (int i =0; i < trips.size(); i++) {
            TripInfo tobj = trips.get(i);
            LayoutInflater vi = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            LinearLayout lrow = (LinearLayout)vi.inflate(R.layout.triprow, null);
           ((TextView)lrow.getChildAt(1)).setText(tobj.getName());
           placeHolderLinearLayout.addView(lrow);
        }

专家请提供一些意见。我是否也必须在代码中设置任何内容。

1 个答案:

答案 0 :(得分:2)

两个图片视图都应该:android:layout_width="wrap_content"并且没有指定android:layout_weight

中央TextView应该有android:layout_width="0dp"android:layout_weight="1"


实际上,如果您将1或任何其他值指定为weigght,则无关紧要。只要这是唯一具有layout_weight的视图,它就会占用所有可用空间。因此,只需删除上一个android:layout_weight="0.2"中的ImageView即可轻松修复您的示例。