使用layout_weight均匀分隔按钮但具有maxWidth

时间:2016-07-25 23:24:13

标签: android android-layout android-layout-weight android-layoutparams

我有4个按钮,我使用layout_weight =“1”和layout_width =“0dp”均匀分隔。但是,在大平板电脑布局上,按钮太分散并且看起来很丑,所以我想为所有按钮设置maxWidth,而在整个LinearLayout的两侧都有空格(所以四个按钮聚集到中心) )。然而,爬行StackOverflow,许多人说他们不能一起工作。有没有办法让我实现上面想做的事情?

TL; DR:

  1. 在一定宽度(例如100dp)以下,所有4个按钮均匀分布。
  2. 如果布局要求按钮大于100dp,则所有4个按钮都设置为100dp宽度并粘在一起,在布局的两侧留下空间。

    <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>
    

2 个答案:

答案 0 :(得分: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. 将此最大宽度设置为此子布局内的按钮

答案 1 :(得分: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" />

`

根据需要为每个按钮添加边距。

相关问题