Android 在XML中,如何将两个元素(或小部件)与正确的w/相对布局对齐?

Android 在XML中,如何将两个元素(或小部件)与正确的w/相对布局对齐?,android,xml,android-layout,Android,Xml,Android Layout,假设在相对布局下有两个按钮并排排列,如 <Button android:id="@+id/arrow_up" android:layout_width="40dp" android:layout_height="40dp" /> <Button android:id="@+id/arrow_down" android:layout_width="40dp" android:layout_height="40dp" />

假设在相对布局下有两个按钮并排排列,如

<Button
    android:id="@+id/arrow_up"
    android:layout_width="40dp"
    android:layout_height="40dp" />

<Button
    android:id="@+id/arrow_down"
    android:layout_width="40dp"
    android:layout_height="40dp" /> 

我尝试将属性android:layout\u alignParentRight=“true”添加到这两个属性中,但存在一些主要问题。首先,如果将其添加到按钮1(id:arrow_up)而不是按钮2(id:arrow_down),则第二个按钮将消失,因为按钮1会一直向右移动。其次,如果将其添加到按钮2而不是按钮1,则按钮2将被拉伸,直到它一直延伸到右侧,并忽略所有和任何宽度值(如本例中的40dp)。第三,如果将其同时添加到这两个选项中,则当按钮1下有alightParentRight属性而不是按钮2下有alightParentRight属性时,结果与所述相同

那么这是如何做到的呢?如何将两个按钮并排向右对齐并保持正确的宽度值?


<Button
    android:id="@+id/button2"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_alignParentRight="true"/>

<Button
    android:id="@+id/button1"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_toLeftOf="@id/button2" />

您希望如何显示这些按钮,垂直或水平相邻?水平(并排),而不是堆叠。然后您可以使用水平方向的线性布局。我想我没有提供足够的信息。还有其他元素,这些按钮位于第7行(例如)。换句话说,它们还具有以下属性android:layout_=“id/someID”。如上所述,在两个按钮周围做线性布局包装会错误放置按钮的正确位置。除非你知道一种方法,在使用某种属性相对化之后定位线性布局?我一直在做边距和填充属性的工作。只是看起来不太干净。我应该改变我的设置,也许是每行线性布局之类的东西吗?如果你对相对布局感到满意,那么你可以使用诸如-android:layout\u-toLeftOf、android:layout\u-toRightOf等属性来放置组件,或者,你可以使用每行线性布局来显示你的视图。我知道你现在是怎么做的了。因此,您必须首先声明行中最远的元素,然后从右到左(而不是从左到右)排序。由于我刚刚尝试了这一点,另一件需要注意的事情是我不能再将按钮2声明为android:layout_toRightOf=“@id/button1”,因为出现了“循环依赖错误”。此解决方案非常有效,谢谢!我更愿意说一个视图只能引用(例如layoutu toLeftOf)自身之上的视图,但我想您的逻辑也很好:)