将RelativeLayout中的窗口小部件与嵌套的LinearLayout中的窗口小部件对齐

时间:2011-07-28 01:36:00

标签: android textview android-linearlayout relativelayout

所以我一直在寻找一段时间,似乎无法找到我的问题的答案

我尝试了一些事情,但似乎没有任何工作,所以我想知道我想做的事情是否可行。

基本上我在XML Layout的基础上有一个RelativeLayout,在RelativeLayout中我有一些嵌套的LinearLayouts,我想要做的是将RelativeLayout中的一个小部件与一个嵌套在LinearLayout中的TextView对齐,如下所示(已删除不必要的XML标记,因此您可以更轻松地查看我要做的事情)


<RelativeLayout>
    <LinearLayout>        
        <TextView 
          android:id="@+id/TextView1"/>
        <TextView 
          android:id="@+id/TextView2"/>
    </LinearLayout>
    <TextView
       android:layout_alignLeft="@id/TextView2" />
</RelativeLayout>

此时我只是放弃了尝试这样做并从我的XML中删除了线性布局,并严格遵循RelativeLayout。

但是,我只想知道我最初尝试的是否可能,以及我是否做错了,或者因为小部件嵌套在另一个布局中的方式,它只是不起作用。

提前致谢

2 个答案:

答案 0 :(得分:1)

RelativeLayout中的元素只会与同一级别中的其他元素(兄弟姐妹)对齐。

然而,你可以通过一点点工作来实现这样的目标。您可以在LinearLayout上放置一个ID。然后,您可以将外部TextView与LinearLayout对齐,并使用填充和边距属性(在TextView2和外部TextView上)使其在显示时真正排列。

答案 1 :(得分:1)

我不确定这是否缺少重点(缺乏上下文,但如果我设法提供帮助并不重要),但听起来你应该能够用水平替换TextView2 LinearLayout包含TextView2和外部TextView。但是,是的,完全坚持使用RelativeLayout会做更多控制的类似事情(我就像嵌套的LinearLayouts,而且就个人而言,我可能会用它们替换整个RelativeLayout,具体取决于它的用途)