1

layout_weight="1" と layout_width="0dp" を使用して均等に配置する 4 つのボタンがあります。ただし、大規模なタブレット レイアウトではボタンが広がりすぎて見栄えが悪いため、すべてのボタンに maxWidth を設定し、代わりに LinearLayout 全体の両側に空のスペースを設定します (したがって、4 つのボタンが中央にクラスター化されます)。 )。しかし、StackOverflow をくまなく調べてみると、多くの人が連携していないと言います。上記のやりたいことを達成する方法はありますか?

tl;dr:

  1. 特定の幅 (たとえば 100 dp) 未満では、4 つのボタンすべてが等間隔に配置されます。
  2. レイアウトでボタンを 100 dp より大きくする必要がある場合は、4 つのボタンすべてを 100 dp の幅に設定し、レイアウトの両側にスペースを残してくっつけます。

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="@dimen/layout_height"
        android:background="@drawable/layout_background"
        android:orientation="horizontal">
    
    <Button
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@color/button_background"/>
    
    <Button
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@color/button_background"/>
    
    <Button
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@color/button_background"/>
    
    <Button
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@color/button_background"/>
    
    </LinearLayout>
    
4

2 に答える 2

0

これを試して

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="@dimen/layout_height"
    android:background="@drawable/layout_background"
    android:orientation="horizontal">

<LinearLayout
   android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:orientation="horizontal">
<Button
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:maxWidth="100dp"
    android:background="@color/button_background"/>
</LinearLayout>    

</LinearLayout>

簡単なハックは

  1. ボタンを線形レイアウトでラップし、このレイアウトに重みを設定します

  2. このサブレイアウト内のボタンに最大幅を設定します

于 2016-07-25T23:44:22.443 に答える
0

これを試してみてください `

<Button
    android:background="@color/button_background"
    android:layout_height="match_parent"
    android:layout_margin="20dp"
    android:layout_weight="1"
    android:layout_width="0dp" />

<Button
    android:background="@color/button_background"
    android:layout_height="match_parent"
    android:layout_margin="20dp"
    android:layout_weight="1"
    android:layout_width="0dp" />

<Button
    android:background="@color/button_background"
    android:layout_height="match_parent"
    android:layout_margin="20dp"
    android:layout_weight="1"
    android:layout_width="0dp" />

<Button
    android:background="@color/button_background"
    android:layout_height="match_parent"
    android:layout_margin="20dp"
    android:layout_weight="1"
    android:layout_width="0dp" />

`

必要に応じて各ボタンに余白を追加します。

于 2016-07-26T11:28:31.617 に答える