3

当我运行以下布局时,我在 Eclipse 中收到一个编译器警告,上面写着:

FrameLayout 中的布局参数无效:layout_weight

有任何想法吗?

    <?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout android:orientation="vertical"
        android:layout_width="fill_parent" android:layout_height="fill_parent">
        <TabWidget android:id="@android:id/tabs"
            android:layout_width="fill_parent" android:layout_height="wrap_content" />
        <FrameLayout android:id="@android:id/tabcontent"
            android:layout_width="fill_parent" android:layout_height="fill_parent">
            <ListView android:id="@+id/list1" android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:layout_weight="1">
            </ListView>
            <ListView android:id="@+id/list2" android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:layout_weight="1">
            </ListView>
        </FrameLayout>
    </LinearLayout>
</TabHost>
4

2 回答 2

4

从您的列表视图中删除 layout_weight 标注(或将它们包装在线性布局中)。

正如它告诉你的那样,当直接父布局是框架布局时,它是无效的。

于 2012-06-06T00:44:46.083 回答
4

这是来自 Android 文档的直接引用 - FrameLayout

通常,应该使用 FrameLayout 来保存单个子视图,因为很难以一种可缩放到不同屏幕尺寸的方式来组织子视图,而不会使子视图相互重叠。但是,您可以使用 android:layout_gravity 属性将多个子项添加到 FrameLayout 并通过为每个子项分配重力来控制它们在 FrameLayout 中的位置。

尝试使用android:layout_gravity而不是android:layout_weight.

于 2012-06-06T00:46:10.200 回答