什么id名称约定是好的Kotlin机器人扩展

使用Kotin的Android扩展我可以避免使用findViewById ,但林不知道如何命名ID来使用它的属性。

我发现两个选项是:

  1. 使用简单的ID名称, 但如果我使用碎片,可能会遇到意式咖啡的麻烦

android.support.test.espresso.AmbiguousViewMatcherException:'与id:… / mainLayout'匹配层次结构中的多个视图。

这是因为我有一个TabLayout里面有两个相同ID的片段:

 <LinearLayout android:id="@+id/mainLayout" 
  1. 与所有者姓名: "@+id/loginMainLayout""@+id/signUpMainLayout"

但是,我将不得不使用像signUpMainLayout.doSomething()这样的变量。

注意:在这种情况下,我不喜欢使用_ ,因为这不是一个好的代码风格 。

还有什么其他的选择?

当名称位于kotlin和java中常见的lowerCamelCase中时,我无法"@+id/loginMainLayout"为什么不使用"@+id/loginMainLayout""@+id/signUpMainLayout" 。 用例就像你说的那样是signUpMainLayout.doSomething()

无论如何,这是一个很好的做法,在整个应用程序中使用id的唯一名称。 这不是因为Espresso的缘故,而是主要是当你看到ID的名字时,才知道与ID相关的视图。 如果你使用这种风格并不难。 例:

fragment_contacts

 <TextView id="+id/contactNameText android:text="John Smith" .../> <ImageView id="+id/contactUserImage .../> 

断言: contactUserImageImage是因为知道它是一个ImageView。

fragment_settings

 <TextView id="+id/settingsNotificationText android:text="Turn notifications on/off" .../> <checkBox id="+id/settingsNotificationCheck .../>