当我运行以下布局时,我在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>
答案 0 :(得分:4)
从列表视图中删除layout_weight标注(或将它们包装在linearlayout中)。
正如它告诉你的那样,当直接父布局是一个framelayout时,它无效。
答案 1 :(得分:4)
这是Android文档的直接引用 - FrameLayout
通常,FrameLayout应该用于保存单个子视图,因为很难以可扩展到不同屏幕大小而儿童不会相互重叠的方式组织子视图。但是,您可以使用android:layout_gravity属性将多个子项添加到FrameLayout并通过为每个子项分配重力来控制它们在FrameLayout中的位置。
尝试使用android:layout_gravity
代替android:layout_weight
。