@id/@+id/之间有什么区别?

101中,加号+指示创建新的资源名称并将其添加到R.java文件中,但是104呢?来自ID的文档:当引用Android资源ID时,您不需要加号,但必须添加Android包命名空间,如下所示:

android:id="@android:id/list"

但在下面的图片中,日食并不意味着任何类型的@android:id/.

显示@/id和@+/id建议的图像

@id/@android:id/是一样的吗?

推荐答案

您使用@android:id/..引用Android resources,它们已经在Android系统中定义,而要访问您在项目中定义/创建的资源,您可以使用@id/..

More Info

根据你在聊天中的澄清,你说你有这样的问题:

如果我们用android:id="@id/layout_item_id",它就不起作用了.@+id/有效,那么这里有什么区别呢?这就是我最初的问题.

这取决于上下文,当您使用XML属性android:id时,您需要指定一个新id,并指示解析器(或称其为生成器)在R.java中创建一个新条目,因此必须包含+号.

而在另一种情况下,比如android:layout_below="@id/myTextView",您引用的是一个已经创建的id,所以解析器将其链接到R.java中已经创建的id.

More Info Again

正如您在聊天中所说,请注意,如果ID为myTextView的元素写在您正在使用它的元素之后,则android:layout_below="@id/myTextView"将无法识别该元素.

Android相关问答推荐

将动作传递给嵌套的可组合物

修改参数应该应用于哪些子元素?

使用不同的Google帐户登录

了解数据加载在Kotlin中的工作原理

DocumentFile.canWrite()、DocumentFile.Existes()-使用本地内置手机存储(而不是云)时性能较差(占用太多CPU时间)

如何判断堆肥是否为空?

Jetpack Compose:如何将文本放置在行的右侧?

如何将 Room Persistence 依赖项正确添加到我的 Jetack Compose Android 应用程序

如何在 compose 中使用可变对象?

从 Jetpack Compose 中的图像中删除默认高度

页面标题未显示在内容页面上

需要在按钮 onclick 上从 string.xml 获取值. @Composable 调用只能在@Composable 函数的上下文中发生

是否可以在 Kotlin 中为 mutableStateOf() 设置自定义设置器

ImageBitmap 使用 Glide/Coil 到画布

Material Design 网站的新设计已启动,但我找不到实现选项卡,该选项卡在哪里?

Jetpack Compose:SpanStyle 的 TextAlign(垂直居中)

清洁架构中的服务

如何在jetpack compose中创建水印文字效果

MVVM - 这个逻辑的最佳层是什么?

Jetpack Compose 中的按钮上的文本未更新