如何避免Android Studio中小部件之间的循环依赖

时间:2014-10-23 15:03:40

标签: android android-layout

我的Bluetooth个应用程序有几个按钮可以使用Bluetooth设置。每当我尝试更改位置/移动activity_bluetooth.xml文件中的窗口小部件时,布局上的另一个窗口小部件就会被拖动或相互重叠,就好像它们是互连的一样。我一次只选择一个小部件。如何停止这种小部件之间的依赖?

渲染问题:渲染期间引发异常

Layout rendering error

1 个答案:

答案 0 :(得分:1)

RelativeLayout的全部内容可以将子项相对于彼此和根视图进行布局。通过使用layout:alignComponent(在可视化设计编辑器中),您可以让Android知道当前视图相对于布局中其他视图的位置。

当您移动按钮时其他视图移动的原因是因为其他视图已指定相对于您现在正在移动的按钮(通过layout:alignComponent)的定位,因此它们的定位随着移动而移动按钮。因此,要消除对按钮的这种依赖性,只需浏览每个视图,查找引用按钮的layout:alignComponent并删除它。 AS给你一个循环依赖异常的原因通常是因为不仅使用layout:alignComponent的其他视图相对于你的按钮定位自己,而且因为你的按钮引用了它自己的一个或多个其他视图layout:alignComponent

例如;如果button1s左边缘设置为相对于button2s左边缘而button2s左边缘设置为相对于button1s左边缘则产生问题。如果他们彼此依赖于布局定位,那么Android如何知道首先布局哪一个?