我的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>
答案 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>
作为间隔物工作正常,据我所知,它似乎完全无害。我在我的应用程序中使用了这一点(虽然老实说,我的大多数按钮都是固定宽度的。)
有一次,我实际上写了一个比例布局的自定义视图。但最终我根本没有使用它。在几乎所有情况下,您都可以在线性布局中使用明智的应用权重获得等效的比例布局。