Android:以百分比宽度为中心的按钮

时间:2013-01-02 20:24:18

标签: android android-layout

我的Android应用程序中有一个相当简单的Activity,它显示三个按钮,每个按钮启动一个不同的Activity。目前,我使用RelativeLayout水平和垂直居中中间按钮,然后将顶部和底部按钮30dp放在中间按钮上(并且也水平居中)。

然而,我想要做的是使按钮拉伸到屏幕宽度的某个百分比。我无法弄清楚如何做到这一点并保持按钮居中。是否有一个好的对象我可以在按钮两侧的LinearLayout中用作“填充物”(所以我可以设置权重)?或者有没有办法做到这一点,不涉及LinearLayout?

现在布局的XML是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button2"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="30dp"
        android:onClick="button1Callback"
        android:text="@string/button1Label" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:onClick="button2Callback"
        android:text="@string/button2Label" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button2"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:text="@string/button3Label" />

</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

不确定。查看或框架都有效。

<LinearLayout android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <View android:layout_height="0dp"  
    android:layout_width="0dp"
    android:layout_weight="60" />
   <Button android:layout_height="wrap_content"  
    android:layout_width="0dp"
    android:layout_weight="20" />
   <View android:layout_height="0dp"  
    android:layout_width="0dp"
    android:layout_weight="20" />
 </LinearLayout>

作为间隔物工作正常,据我所知,它似乎完全无害。我在我的应用程序中使用了这一点(虽然老实说,我的大多数按钮都是固定宽度的。)

有一次,我实际上写了一个比例布局的自定义视图。但最终我根本没有使用它。在几乎所有情况下,您都可以在线性布局中使用明智的应用权重获得等效的比例布局。