5

我正在处理一个带有 5 个按钮的片段。当它在像平板电脑这样的大屏幕上时,我使用一个将所有 5 个按钮放在顶部的片段。我将它们的所有 layout_width 设置为 1,但按钮不会像预期的那样均匀分布在屏幕上。

预计[全部][我的][按钮][转到][这里]

我得到了什么 b1 b2 b3 b4 b5 b3 和 b5 只是一个按钮......只是显示它会破坏一个单词 [all][my][but ][go][her] 并将其放下一行。[吨] [e]

我一直在玩它并尝试不同的东西,但我无法改变它。任何帮助表示赞赏。谢谢你。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/xlarge_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<Button
    android:id="@+id/tip_btn"
    android:layout_width="0px"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:text="@string/tip_button"
    android:onClick="tipButton">
</Button>

<Button
    android:id="@+id/preference"
    android:layout_width="0px"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:text="@string/settings"
    android:onClick="showPreferences">
</Button>

<Button
    android:id="@+id/rate_btn"
    android:layout_width="0px"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:text="@string/rate_button"
    android:onClick="rateButton">
</Button>

<Button
    android:id="@+id/feedback_btn"
    android:layout_width="0px"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:text="@string/feedback_button"
    android:onClick="feedbackButton">
</Button>

<Button
    android:id="@+id/cancel_btn"
    android:layout_width="0px"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:text="@string/exit_button"
    android:onClick="cancelButton">
</Button>
</LinearLayout>
4

2 回答 2

27

简短的回答:将按钮的 layout_width 设置为 0。 layout_weight 用于确定如何在布局中的元素之间分布剩余空间。因此,如果不将宽度设置为零,按钮内容的大小会影响它们的大小。

这里有两篇很好的博客文章解释了权重是如何工作的:

http://blog.stylingandroid.com/archives/297 http://blog.stylingandroid.com/archives/312

于 2012-07-20T18:47:55.563 回答
8

由于您使用的是 layout_weight,因此您应该为 layout_width 提供 0dp。它应该工作。

于 2014-06-27T15:36:11.000 回答