如何在不重做所有相对关系的情况下轻松地重新安装Android XML布局(尤其是RelativeLayouts)?

时间:2011-12-29 23:30:49

标签: android xml relativelayout

我发现自己使用RelativeLayout比Android XML文件中的任何其他类型的布局更多。鉴于我的应用程序主要使用简单和基本的界面,很容易敲出一个新的RelativeLayout。

目前我创建一个RelativeLayout并分配布局属性的每个组件,例如Layout Below,Layout Left或Layout Right,将该组件锚定到用户界面的正确区域。

虽然很容易定义新的布局,但是它试图在布局中移动单个组件。鉴于我在布局中使用了组件来分隔其他组件,一旦组件移动,该组件周围的布局就会崩溃。移动组件意味着我必须为该组件下面的所有组件重新建立关系。当然我这样做错了?必须有更好的方法吗?

TL; DR我使用RelativeLayouts和我放在UI中的组件相互间隔(当然)。如果我将一个组件移到顶部,那么它下方的项目会因为相对关系中断而中断。如何更轻松地移动组件并尝试我的UI,而不必每次都重命名数十个空间关系?!

2 个答案:

答案 0 :(得分:1)

+1这个问题,因为我一直在寻找解决方案。但是,我认为/感觉这样做的唯一方法是为能够承担的项目声明android:layout_alignParentBottomandroid:layout_alignParentLeft等属性,因为它们与父母对齐,根据我的理解是布局本身。否则,Relative Layouts我看不到任何其他方式。正如Rafael T所说,将这些项目绑定到布局的另一种方法是使用nested Linear Layouts。但话说回来,即便这样也有点单调乏味。最后,它取决于选择布局的程序员。就个人而言,我选择/更喜欢Relative Layouts

答案 1 :(得分:1)

这是工具比手工编码布局XML更可取的情况之一。使用“图形布局”选项卡编辑XML有助于缓解重构RelativeLayout的痛苦。它不是完美的解决方案,但它确实使事情变得更加容易。

我应该指出,这些变化是在ADT 14及更新版本中出现的。如果您使用任何旧的ADT,我建议您升级。如果您不知道如何使用图形编辑器充分利用RelativeLayout,请查看this video

话虽如此,RelativeLayout的不灵活性是我更喜欢使用嵌套LinearLayout而不是前者的主要原因 - 尽管Google's suggestions to use the former出于性能原因。

作为折衷方案,我仅对RelativeLayout中的项目使用ListView,为其他所有内容使用嵌套LinearLayout