1

我想知道如何将按钮对齐如下: Button1 和 Button2-2 应该水平对齐, Button2-1 和 Button2-2 应该垂直对齐。

                        [Button2-1]
[other views] [Button1] [Button2-2]

这是我的代码,但它不起作用:

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ButtonGroups"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/Button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical" >

            <Button
                android:id="@+id/Button2-1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center" />

            <Button
                android:id="@+id/Button2-2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

编辑:

为了更清楚,我在这里发布了更多代码,希望它可以更好地解释我的需求:

我想要的是将文本视图与图像按钮水平对齐,同时将其上方的搜索栏垂直对齐。

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ButtonGroups"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/Button00"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/background00"
            android:gravity="bottom"
            android:scaleType="center"
            android:src="@drawable/button00" />

         <ImageButton android:id="@+id/Button11"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@drawable/button11"
             android:scaleType="center"
             android:gravity="bottom"
             android:background="@drawable/background11"
             />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="bottom"
            android:orientation="vertical" >

           <SeekBar
                    android:id="@+id/SeekBar1"
                    style="@style/MySeekBar1"
                    android:layout_width="60dp"  
                    android:layout_height="35dp"
                    android:layout_marginBottom="20dp"
                />

            <TextView
                    android:id="@+id/MyText"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="bottom"
                    android:background="@drawable/MyTextImg"
                />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>
4

4 回答 4

3

使用相对布局。堆叠 LinearLayouts 通常不是要走的路!

https://developer.android.com/reference/android/widget/RelativeLayout.html

https://developer.android.com/guide/topics/ui/layout/relative.html

于 2013-05-01T21:12:14.170 回答
0

尝试将第一个按钮(按钮 1)的重力属性更改为底部。

于 2013-05-01T21:14:26.580 回答
0

正如有人建议的那样,使用RelativeLayout 来设计这种类型的模式!这是您的情况的示例:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ButtonGroups"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

        <Button
            android:id="@+id/Button2-2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/Button1"
            android:layout_alignBottom="@+id/Button1"
            android:layout_toRightOf="@+id/Button1"
            android:text="button 2-2" />

        <Button
            android:id="@+id/Button2-1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/Button2-2"
            android:layout_alignLeft="@+id/Button2-2"
            android:text="button 2-1" />

        <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_marginTop="54dp"
            android:text="button 1" />
</RelativeLayout>

我希望这能让你开始!

于 2013-05-01T21:25:28.540 回答
0

试试下面的代码:

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

<TableRow >
    <TextView />

    <Button 
        android:id="@+id/button2" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="Button2-1" />
</TableRow>

<TableRow >
    <Button 
        android:id="@+id/button1" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="Button1" />

    <Button 
        android:id="@+id/button2" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="Button2-2" />

</TableRow>

</TableLayout>

诀窍是在第一行的空白处使用空白文本视图。让我知道这是否对您有帮助。:)

于 2013-05-02T05:19:22.370 回答