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 コールアウトを削除します (またはそれらを linearlayout でラップします)。

おっしゃるとおり、直接の親レイアウトがフレームレイアウトの場合は無効です。

于 2012-06-06T00:44:46.083 に答える
4

これは、Android ドキュメントからの直接の引用です - FrameLayout

通常、FrameLayout は単一の子ビューを保持するために使用する必要があります。これは、子ビューが互いに重なり合うことなく、さまざまな画面サイズに拡張できるように子ビューを整理することが難しい場合があるためです。ただし、複数の子を FrameLayout に追加し、android:layout_gravity 属性を使用して各子に重力を割り当てることで、FrameLayout 内の位置を制御できます。

android:layout_gravityの代わりに使ってみてくださいandroid:layout_weight

于 2012-06-06T00:46:10.200 に答える