0

我想让 2 个按钮占据屏幕宽度的一半,但是我真的只有一个按钮进入屏幕并占据整个屏幕宽度。我希望它适用于所有分辨率,所以不想固定宽度。一个按钮会占用左半边,另一个会占用右半边 它怎么做

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:gravity="center">


        <Button
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Button"
            android:layout_gravity="left" />


        <Button
            android:id="@+id/button2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Button" 
            android:layout_gravity="right" />

    </LinearLayout>

</ScrollView>
4

2 回答 2

3

您可以定义layout_weight来定义视图的大小。如果与权重设置一起使用(根据 lint),使用layout_widthto be是最好的方法。0dp当两个按钮的值相同时,都使用 50% 的宽度。玩弄这些价值观来感受一下。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/button1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Button"
        android:layout_weight="1"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Button" 
        android:layout_weight="1" />

</LinearLayout>
于 2013-01-06T18:48:05.663 回答
2

使用以下布局技术。使用Linear Layout. 将layout_width您的按钮分配给0dip. 分配layout_weight1每个按钮,使它们占据的总宽度相等。将layout_height每个按钮分配为match_parent

    <LinearLayout 
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        <Button
            android:id="@+id/ButtonLeft"
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="ButtonLeft"
            />
        <Button
            android:id="@+id/ButtonRight"
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="ButtonRight"
            />

    </LinearLayout>

PS:如果您希望它们占据半屏高度而不是宽度,请更改orientation布局并在上述 XMLvertical之间交换值。layout_widthlayout_height

关于 layout_weight

layout_weight决定父元素空间如何在其子元素之间划分。如果您想在按钮之间按 1:4 划分宽度,则将layout_weight1 个按钮分配给“1”,将另一个按钮分配给“3”--> 1/(1+3) = 1/4,如您所愿。再次,什么空间可以layout_weight工作 - 高度或宽度?layout_weight从空闲或未使用的空间进行分配。在上面的布局中,我们分配0dip了按钮的宽度。因此,父级的水平空间或宽度未使用或空闲,并且根据layout_weight. 希望这可以帮助。

于 2013-01-06T18:48:36.850 回答