我正在尝试创建一个有三行的LinearLayout,每行高度相等。我在主要内部使用3个LinearLayouts创建它,每个都有一个layout_weight为1。
中间的LinearLayout应该包含一个ImageView,TextView,ImageView,权重为1,2,1。为此,在中间的LinearLayout中创建了另一个3。
我希望TextView的大小是每个ImageView的两倍。如果您看到下面的代码,当内部LinearLayouts的layout_weight为1时,我没有问题,这三个看起来大小相同。但是当我将中间的(id = textLayout)设置为layout_weight=2
时,它会完全消失(如Eclipse图形布局查看器中所示),只有其他两个可见。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/fondo"
android:gravity="center_vertical|center_horizontal">
<LinearLayout
android:id="@+id/LayoutTop"
android:orientation="horizontal"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_weight="1">
</LinearLayout>
<LinearLayout
android:id="@+id/LayoutMid"
android:orientation="horizontal"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_weight="1">
<LinearLayout
android:orientation="horizontal"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_weight="1">
<ImageView
android:layout_height="fill_parent"
android:layout_width="fill_parent">
</ImageView>
</LinearLayout>
<LinearLayout
android:id="@+id/textLayout"
android:orientation="horizontal"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_weight="2">
<TextView
android:text="Status"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</TextView>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_weight="1">
<ImageView
android:layout_height="fill_parent"
android:layout_width="fill_parent">
</ImageView>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/LayoutBottom"
android:orientation="horizontal"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_weight="1">
</LinearLayout>
</LinearLayout>
答案 0 :(得分:1)
您不需要额外的布局来适当地间隔中间行,并且您的权重是向后的。如果您希望文本是外部图像的2倍,则希望它为1,外部列为1.5
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout android:id="@+id/LayoutTop"
android:orientation="horizontal" android:layout_height="0dp"
android:layout_width="fill_parent" android:layout_weight="1" android:background="#ffff0000"/>
<LinearLayout android:id="@+id/LayoutMid"
android:orientation="horizontal" android:layout_height="0dp"
android:layout_width="fill_parent" android:layout_weight="1">
<ImageView android:layout_height="fill_parent"
android:layout_width="fill_parent" android:background="@drawable/icon"
android:layout_weight="1.5" />
<TextView android:layout_height="fill_parent" android:id="@+id/TextView01"
android:layout_weight="1" android:text="Status" android:layout_width="fill_parent" />
<ImageView android:layout_height="fill_parent"
android:layout_weight="1.5" android:background="@drawable/icon"
android:layout_width="fill_parent" />
</LinearLayout>
<LinearLayout android:id="@+id/LayoutBottom"
android:orientation="horizontal" android:layout_height="0dp"
android:layout_width="fill_parent" android:layout_weight="1" android:background="#ff00ff00"/>
</LinearLayout>
我使用了一个图标(如果你有的话)将图片放在中间行,并在顶部和底部放置一些颜色以更清楚地显示间距。