gpt4 book ai didi

android - 什么 id 名称约定对 Kotlin android 扩展有好处

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:45:32 25 4
gpt4 key购买 nike

使用 Kotin android extensions我可以避免使用 findViewById,但是我不确定如何命名 ID 以正确使用它。

我发现两个选项是:

  1. 为 ID 使用简单的名称但是如果我将它与 fragment 一起使用,我可能会在使用 espresso 时遇到麻烦:

android.support.test.espresso.AmbiguousViewMatcherException: 'with id: .../mainLayout' matches multiple views in the hierarchy.

这是因为我在 TabLayout 中有两个具有相同 ID 的 fragment :

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

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

Note: I dont like the use of _ in this case since that's not a good code style.

还有哪些选择?

最佳答案

当名字在 lowerCamelCase 在 Kotlin 和 Java 中很常见。如您所说,用例将是 signUpMainLayout.doSomething()

无论如何,在整个应用程序中为 id 使用唯一名称是一个好习惯。这不是因为 Espresso,而是主要是当您看到 ID 的名称时知道 View 与 ID 关联的位置。如果你使用这种风格并不难。示例:

fragment_contacts 中:

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

<ImageView id="+id/contactUserImage .../>

断言:contactUserImage 中有 Image,因为知道它是一个 ImageView

fragment_settings 中:

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

<checkBox id="+id/settingsNotificationCheck .../>

关于android - 什么 id 名称约定对 Kotlin android 扩展有好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43624701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com