按钮半宽屏幕

时间:2012-02-27 19:11:05

标签: android android-layout

我有一个线性布局的按钮。我希望按钮占据其父级宽度的一半。有没有办法在布局xml中执行此操作。

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center_horizontal"
    android:padding="6dp">

    <Button
        android:id="@+id/buttonCollect"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:text="@string/hello"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"/>

</LinearLayout> 

我的问题很像Assign width to half available screen width declaratively,除了我只有一个按钮。

4 个答案:

答案 0 :(得分:77)

是的,解决方案与该问题非常相似,但您还想设置父LinearLayout的weightSum:

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center_horizontal"
    android:padding="6dp"
    android:weightSum="2">

    <Button
        android:id="@+id/buttonCollect"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:text="@string/hello"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:layout_weight="1" />

</LinearLayout> 

答案 1 :(得分:3)

您需要设置0.5(一半)重量,并将宽度设置为0.

<Button
    android:id="@+id/buttonCollect"
    android:layout_width="0dip"
    android:layout_weight="0.5"
    android:layout_height="match_parent"
    android:text="@string/hello"
    android:paddingLeft="8dp"
    android:paddingRight="8dp"/>

答案 2 :(得分:1)

这些解决方案在Android L上都不适用于我。我必须执行如下的wrap_content:

<Button
    android:layout_gravity="center"
    android:id="@+id/btnSignin"
    android:layout_width="wrap_content"
    android:paddingLeft="20dp"
    android:paddingRight="20dp"
    android:layout_height="wrap_content"
    android:text="@string/btn_signin"
    android:layout_marginBottom="@dimen/activity_vertical_margin" />

答案 3 :(得分:0)

与您发布的问题完全相同,只需使用虚拟视图:

<View 
android:weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"/>