10

彼ら。リスト フラグメントと 3 つの詳細関連フラグメントの 4 つの異なるフラグメントを含むアクティビティのレイアウトをコーディングしようとしています。私はそれを次の図のようにしようとしています ここに画像の説明を入力

LinearLayout を使用すると、リスト フラグメントと詳細領域 (他の 3 つのフラグメントがあるはずの場所) の間で 30/70 の比率を得ることができます。ただし、これらの 3 つのフラグメントを処理するとき、予想される比率内にそれらを維持する方法が本当にわかりません。これは、weightSum 属性を使用してレイアウトをネストできないためです。

私は RelativeLayouts を試してきましたが、「wrap_content」値を使用したくありません。コンテンツの一部が他のコンテンツよりも大きく、達成しようとしている外観が壊れているためです。

これを行う方法はありますか?私はTableLayoutsを知っていますが、知る限り、それらはHTMLテーブルのようなものです.レイアウトツールとしてではなく、データで使用するものです...

4

2 に答える 2

13

ネストされたウェイトは問題なく機能するはずです。私はそれらを数回使用しましたが、Eclipse は「ネストされたウェイトはパフォーマンスに悪い」というヒントを示しています。

次のようなものを試してください:

<LinearLayout android:id="@+id/main_layout"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:weightSum="1"
    android:orientation="horizontal">

    <LinearLayout android:id="@+id/layout_fragment_a"
        android:layout_height="match_parent"
        android:layout_width="0dp"
        android:layout_weight="0.5"/>

    <LinearLayout android:id="@+id/layout_container_b_c"
        android:layout_height="match_parent"
        android:layout_width="0dp"
        android:layout_weight="0.5"
        android:weightSum="1"
        android:orientation="vertical">

        <LinearLayout android:id="@+id/layout_fragment_b"
            android:layout_height="0dp"
            android:layout_width="match_parent"
            android:layout_weight="0.7"/>

        <LinearLayout android:id="@+id/layout_fragment_c"
            android:layout_height="0dp"
            android:layout_width="match_parent"
            android:layout_weight="0.3"/>

    </LinearLayout>

</LinearLayout>

そして、それは私が他の時もやった方法です。xml にはいくつかの失敗やタイプミスがある可能性があります (ここで応答ボックスに正しく書いています:P) が、アイデアを得るのに役立つはずです: フルスペースを使用し、それぞれ 50% 幅の 2 つの第 2 レベルのレイアウトを含む 1 つのメインレイアウト (main_layout) ( fragment_a と container_b_C) と、そのレイアウトのスペースを 70/30 (fragment_b と fragment_c) に分割する 2 番目のレベルのレイアウトの onw にある別の 2 つのレイアウト (fragment_b と fragment_c) :)

それが役に立てば幸い!

于 2013-01-28T17:45:10.653 に答える
0

試してみませんか :

<LinearLayout android_width="30.0" android_height="fill_parent"/>
<LinearLayout android_width="50.0" android_height="fill_parent"/>
<LinearLayout android_width="50.0" android_height="fill_parent">
      <LinearLayout android_width="fill_parent" android_height="70.0"/>
      <LinearLayout android_width="fill_parent" android_height="30.0"/>
</LinearLayout>

私はそれをテストしませんでした(現在のEclipseワークスペースではありません)が、これでうまくいくはずです...

于 2013-01-28T16:03:44.017 に答える