【问题标题】:Evenly spacing buttons with layout_weight but having a maxWidth具有 layout_weight 但具有 maxWidth 的均匀间距按钮
【发布时间】:2016-07-25 23:24:13
【问题描述】:
我有 4 个按钮,我使用 layout_weight="1" 和 layout_width="0dp" 将它们均匀隔开。但是,在大型平板电脑布局上,按钮过于分散并且看起来很难看,因此我想为所有按钮设置一个 maxWidth,并在整个 LinearLayout 的两侧留有空白空间(因此四个按钮聚集到中心)。然而,通过 StackOverflow 爬行,许多人说他们不一起工作。有没有办法让我实现上面想要做的事情?
tl;博士:
- 低于特定宽度(例如 100dp),所有 4 个按钮均等间距。
-
如果布局要求按钮大于 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>
【问题讨论】:
标签:
android
android-layout
android-layout-weight
android-layoutparams
【解决方案1】:
试试这个
<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>
一个简单的hack可能是
使用线性布局包裹您的按钮并为此布局设置权重
在此子布局内设置按钮的最大宽度
【解决方案2】:
试试这个`
<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" />
`
根据需要为每个按钮添加边距。