Android layout_weight不工作

时间:2012-07-20 18:42:03

标签: android android-layout

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

预期 [all] [my] [buttons] [go] [here]

我得到什么 b1 b2 b3 b4 b5 b3和b5只是一个按钮...只是显示它打破了一个字 [全部] [我] [但] [去] [她]并将其排成一行。          [吨] [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>

2 个答案:

答案 0 :(得分:19)

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

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

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

答案 1 :(得分:6)

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