是否可以在选项卡布局中使用具有相同ID的视图但在不同的选项卡内容中?

时间:2011-09-01 12:24:42

标签: android android-tabhost

我使用Tab布局显示3个不同的内容视图,但是有几个视图(精确的按钮),这些视图在所有3个内容视图中是通用的。目前,我已经唯一地识别了所有常见的观点,例如

android:id=@+id/tab1_button1

即使它们执行相同的功能,尽管当前显示了哪个标签内容。

有没有办法可以在所有标签内容中保持相同的视图ID?是仅仅识别具有相同ID的视图的问题?

因为我正在使用Tabs我明白TabHost必须是Layout的根节点,因此我不能在另一个Layout中使用TabHost。我能理解这一点吗?

2 个答案:

答案 0 :(得分:1)

您可以在所有标签上android:id=@+id/tab_button1的标签button1中使用相同的ID。然而,它不是一个好的设计,你最好提取你的布局的类似部分包括,以避免代码重复。更多信息here

答案 1 :(得分:0)

如上所述Here

  

用于声明UI元素的XML词汇表紧跟着   结构和命名的类和方法,其中元素名称   对应于类名和属性名对应于方法。

     

任何View对象都可以具有与之关联的整数ID,以便唯一   识别树中的视图。

     

ID在整个树中不一定是唯一的,但应该是   在您正在搜索的树的一部分中是唯一的(可能经常   是整棵树,所以最好是完全独特的   可能的)。

因此,您可以对任意数量的视图使用相同的ID。但最佳做法应该是对相似的视图使用相同的id。您只需要记住,您应该只在您寻求其子视图的视图上调用findViewById()

如果在具有多个具有相同ID的子视图的视图上调用findViewById(),则该行为未记录,并且依赖于其当前实现是不明智的。