Android 相对布局、最佳实践和相对布局解析的评估顺序

Android 相对布局、最佳实践和相对布局解析的评估顺序,android,eclipse,android-relativelayout,android-ui,android-gui,Android,Eclipse,Android Relativelayout,Android Ui,Android Gui,我读了这个 " 过去,安卓系统会使用单次传递来处理 RelativeLayout定义的规则。这意味着您无法引用小部件 (例如,通过上面的android:layout_)直到它在XML中声明 定义一些布局有点复杂。从Android 1.6开始, Android使用两个过程来处理规则,因此您现在可以安全地 转发对尚未定义的小部件的引用。 " 我不知道是什么问题,可能是eclipse问题,但即使我使用2.3,当我引用一些未声明为jet的视图时,我仍然存在问题,所以对我来说,android似乎不使用两个

我读了这个

" 过去,安卓系统会使用单次传递来处理 RelativeLayout定义的规则。这意味着您无法引用小部件 (例如,通过上面的android:layout_)直到它在XML中声明 定义一些布局有点复杂。从Android 1.6开始, Android使用两个过程来处理规则,因此您现在可以安全地 转发对尚未定义的小部件的引用。 "

我不知道是什么问题,可能是eclipse问题,但即使我使用2.3,当我引用一些未声明为jet的视图时,我仍然存在问题,所以对我来说,android似乎不使用两个过程来处理相对布局的规则

注意:当我声明小部件时,我总是使用@+id/widget_名称;当我从其他小部件引用该小部件时,我总是使用@id/widget_名称。我注意到我可以使用@+id/widget_name,即使我只想引用那个widget。我想这是错误的,但为什么有时候是工作没有任何抱怨?在我看来,一个小部件应该只允许声明一个

我的问题是android真的使用了两个通行证吗?我需要一些指导原则(最佳实践)来处理相关布局

我不太清楚这种相对布局是如何进行的,所以欢迎任何解释

感谢

是关于Android如何绘制视图的一般信息。
我认为Android会在所有视图中运行两次,但不会在每个视图中运行一次。因此,如果您有一个从一个xml到另一个xml的引用,那么它总是可以正常工作的,但是如果您在一个xml中有引用,那么您必须小心地对xml中的元素进行正确排序。例如,我的RelativeLayout中有view1和view2。如果我想从view1引用view2,我必须在view1之前声明view2。

@+id/name
创建一个新的id,如果它不存在的话
@id/name
引用现有id,并且永远不会创建一个id

我不确定您是否可以在同一文件中使用
@+id/name
之前的
@id/name
。如果不是,我可以想出两个解决办法:

  • 始终使用
    @+id/name

  • ids.xml
    文件中定义所有id,并始终使用
    @id/name


  • 我有一个问题是关于第一个“总是使用@+id/name”,我应该期待什么副作用?我的意思是,我不能正常定义名称5次…有可能拼写错误的id。根据id的使用位置,您可能会在编译时或运行时出错。使用
    @id/name
    ,当您拼错id时,您总是会遇到编译时错误。我也有这个问题,必须重新组织布局以修复引用是非常糟糕的。这不是编译器的任务,而不是程序员的任务吗?