0

我希望按钮 B1 和 B2 位于该行的右侧,按钮 A1 和 A2 位于该行剩余空间的中心。

在余数内居中

如果没有两次包装 Buttons A 这可能吗?

以下是使问题具体化的细节。

@id/buttonAxEclipse通过说“这个 LinearLayout 布局或 RelativeLayout 父级可能没用”来批评这两个父布局。

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

    <LinearLayout
        android:id="@+id/myRightMostLL"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true" >

        <Button
            android:id="@+id/buttonB1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="B1" />

        <Button
            android:id="@+id/buttonB2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="B2" />

    </LinearLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/myRightMostLL">

        <LinearLayout
            android:id="@+id/remainderLL"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true">

            <Button
                android:id="@+id/buttonA1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="A1" />

            <Button
                android:id="@+id/buttonA2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="A2" />

        </LinearLayout>

    </RelativeLayout>

</RelativeLayout>

然而,我需要这种无用性才能将按钮 A 放在按钮 B 布局后剩余的空间中。一个按钮 A 的父包装布局能否获得相同的效果?

在像这样的布局中,我也经常质疑@id/myRightMostLL 是否真的需要首先出现在文件中。

4

2 回答 2

1

下面的解决方案没有显示可能无用的警告:)

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

    <RelativeLayout
        android:layout_toLeftOf="@+id/layRight"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        >
                <Button
                    android:id="@+id/button3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_toRightOf="@+id/button4"
                    android:text="Button" />

            <Button
                android:id="@+id/button4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button" />

    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/layRight"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true" >

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

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

    </RelativeLayout>


</RelativeLayout>

http://clip2net.com/s/5nna7M

于 2013-07-11T16:57:33.987 回答
1

我认为你可以用一个布局来做到这一点,使用几个“填充”视图来占用空间:

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

    <View
        android:layout_width="0"
        android:layout_height="wrap_content"
        android:layout_weight="1" />
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="A1" />
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="A2" />
    <View
        android:layout_width="0"
        android:layout_height="wrap_content"
        android:layout_weight="1" />
    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="A3" />
    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="A4" />
</LinearLayout>

如果您的目标是 API 14 或更高版本,则可以使用Space小部件而不是View上面的。Space只是 a 的轻量级替代品View,专为这种东西设计。

于 2013-07-11T23:51:14.930 回答