android简单布局

时间:2013-01-06 18:41:35

标签: android android-layout layout

我想让make 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>

2 个答案:

答案 0 :(得分:3)

您可以定义layout_weight来定义视图的大小。如果使用权重设置(根据lint),使用layout_width0dp是最好的方法。当两个按钮具有相同的值时,两者都使用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>

答案 1 :(得分:2)

使用以下布局技术。使用Linear Layout。将layout_width按钮分配给0dip。将layout_weight分配为1到每个按钮,以便它们占据等于总宽度。将每个按钮的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更改为vertical,并在layout_width和{之间互换值上面的XML中的{1}}。

关于layout_weight

layout_height决定父元素空间如何在它的子元素之间划分。如果您想在按钮之间按1:4划分宽度,则将1个按钮的layout_weight指定为“1”,将另一个按钮指定为“3” - &gt; 1 /(1 + 3)= 1/4如你所愿。 layout_weight处理什么空间 - 高度或宽度? layout_weight从免费或未使用的空间进行分发。在上面的布局中,我们将layout_weight分配给按钮的宽度。因此,父级的水平空间或宽度未使用或自由,并且根据0dip在您的按钮之间划分。希望这会有所帮助。