如何使所有按钮具有相同的高度(并保持其重量)?

时间:2013-05-13 18:07:36

标签: android android-layout button height

enter image description here

<LinearLayout 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"
    android:orientation="horizontal"
    android:weightSum="6"
    tools:context=".MainActivity" >

    <Button 
        android:text="BTN1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_vertical"
        android:layout_weight="1" />
    <Button 
        android:text="BTN2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_vertical"
        android:layout_weight="2" />
    <Button 
        android:text="BTN3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_vertical"
        android:layout_weight="1" />
    <Button 
        android:text="BTN4"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_vertical"
        android:layout_weight="1" />
    <Button 
        android:text="BTN5"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_vertical"
        android:layout_weight="1" />

</LinearLayout>

使用android:layout_height="match_parent"只需将按钮拉伸到整个屏幕高度即可。我希望按钮2的宽度是其他按钮的两倍。

4 个答案:

答案 0 :(得分:3)

这样做:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="6"
    tools:context=".MainActivity" >

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_vertical"
        android:layout_weight="1"
        android:text="BTN1" />

    <Button
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="fill_vertical"
        android:layout_weight="2"
        android:text="BTN2" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_vertical"
        android:layout_weight="1"
        android:text="BTN3" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_vertical"
        android:layout_weight="1"
        android:text="BTN4" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_vertical"
        android:layout_weight="1"
        android:text="BTN5" />

</LinearLayout>

制作父级布局高度wrap_content和第二个按钮的高度match_parent

enter image description here

答案 1 :(得分:0)

你去......

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:weightSum="6"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/Button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_gravity="fill_vertical"
        android:layout_toLeftOf="@+id/Button2"
        android:layout_weight="1"
        android:text="BTN1as s dh asgdjhsg djahgsd  gsadhasdhg sa" />

    <Button
        android:id="@+id/Button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/Button1"
        android:layout_alignParentTop="true"
        android:layout_gravity="fill_vertical"
        android:layout_toLeftOf="@+id/Button3"
        android:layout_weight="1"
        android:text="BTN2" />

    <Button
        android:id="@+id/Button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/Button1"
        android:layout_alignParentTop="true"
        android:layout_gravity="fill_vertical"
        android:layout_toLeftOf="@+id/Button4"
        android:layout_weight="1"
        android:text="BTN3" />

    <Button
        android:id="@+id/Button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/Button1"
        android:layout_alignParentTop="true"
        android:layout_gravity="fill_vertical"
        android:layout_toLeftOf="@+id/Button5"
        android:layout_weight="1"
        android:text="BTN4" />

    <Button
        android:id="@+id/Button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/Button1"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_gravity="fill_vertical"
        android:layout_weight="1"
        android:text="BTN5" />

</RelativeLayout>

答案 2 :(得分:0)

你已经做得对了。第二个按钮已经是其余按钮宽度的两倍。

你留下的问题是身高。高度的差异是因为按钮内的文字对于这样的小按钮来说太大了。只需减少文本大小,这应该是神奇的。

答案 3 :(得分:-1)

需要将LinearLayout高度更改为wrap_content,然后将所有高度更改为match_parent。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="6"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button1"
        android:text="BTN1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="fill_vertical"
        android:layout_weight="1" />
    <Button 
        android:id="@+id/button2"
        android:text="BTN2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="fill_vertical"
        android:layout_weight="2" />
    <Button 
        android:id="@+id/button3"
        android:text="BTN3"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="fill_vertical"
        android:layout_weight="1" />
    <Button 
        android:id="@+id/button4"
        android:text="BTN4"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="fill_vertical"
        android:layout_weight="1" />
    <Button 
        android:id="@+id/button5"
        android:text="BTN5"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="fill_vertical"
        android:layout_weight="1" />

</LinearLayout>