1

同じ幅の 2 つの列にボタンを配置できるメニュー レイアウトを作成しようとしています。
すべての画面を埋めるためにボタンを引き延ばしたくありません (長いラベルがない限り)。
すべてのボタンの幅を同じにしたい - ラベルが最も長いボタンの幅。
1 つの水平線形レイアウト内で 2 つの垂直線形レイアウトを試しています。
私が見つけたすべてのソリューションは、垂直線形レイアウトには同じ layout_weight を使用し、水平レイアウトには layout_width=fill_parent を使用することを提案しています。これにより、ボタンが画面幅全体を占めるようになります。
私の問題に対する一般的な解決策はありますか?

これは私が期待するものです - https://dl.dropbox.com/u/2751770/android-layout1.PNG
これは、一般的なソリューションがどのように見えるかです -https://dl.dropbox.com/u/2751770/android-layout2.PNG

そして、これが私が一般的な解決策として使用しているコードです:

<LinearLayout style="@style/menuLayout"
              android:layout_width="match_parent" 
              android:orientation="horizontal"
              android:baselineAligned="false">
    <LinearLayout android:orientation="vertical"
                  android:layout_weight="1"
                  android:layout_width="0dp"
                  android:layout_height="wrap_content">
        <Button style="@style/menuButton"
                android:text="Title 1"/>
        <Button style="@style/menuButton"
                android:text="Title 2"/>
    </LinearLayout>
    <LinearLayout android:orientation="vertical"
                  android:layout_weight="1"
                  android:layout_width="0dp"
                  android:layout_height="wrap_content">
        <Button style="@style/menuButton"
                android:text="Title 3"/>
        <Button style="@style/menuButton"
                android:text="Long title 4"/>
    </LinearLayout>
</LinearLayout>

スタイル:

<style name="menuLayout">
    <item name="android:layout_gravity">center</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_width">wrap_content</item>
</style>
<style name="menuButton">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">match_parent</item>
    <item name="android:paddingLeft">30dp</item>
    <item name="android:paddingRight">30dp</item>
    <item name="android:layout_margin">5dp</item>
</style>
4

1 に答える 1

0

スタイル「menu_layout」で幅を設定しており、コードの 2 行目でも幅を設定しています。そのうちの 1 つを削除してください。そしてandroid:weightSum="1"、親LinearLayoutで使用してからandroid:layout_weight="0.5"、各で使用してみてくださいLinearLayout

于 2012-12-03T15:37:14.183 に答える