首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >@id和@+id有什么区别?

@id和@+id有什么区别?
EN

Stack Overflow用户
提问于 2012-06-23 01:09:34
回答 2查看 14.8K关注 0票数 41

我刚刚开始使用android,并且已经完成了大约5个布局文件。然而,我刚刚意识到我一直在交替使用@id和@+id,但我不确定这两者之间的确切区别是什么。

EN

回答 2

Stack Overflow用户

发布于 2017-02-13 23:24:29

有时你必须使用+号。例如,当您使用<include ... />时,包含的文件如下:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.FloatingActionButton xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    (...)
    app:layout_anchor="@+id/view_pager"
    app:layout_anchorGravity="top|right|end"
 />

如果不在"@+id/view_pager"中添加+,在构建项目时会出现错误:

代码语言:javascript
复制
Error:(9, 24) No resource found that matches the given name (at 'layout_anchor' with value '@id/view_pager').

这件事发生在我的图书馆项目中。

票数 2
EN

Stack Overflow用户

发布于 2017-10-18 08:51:18

为了访问Java中的小部件(或组件)或使其他人依赖它,我们需要一个唯一的值来表示它。这个唯一值是由android:id属性提供的,它本质上是将id作为后缀添加到id资源文件中,以供其他人查询。工具栏的id可以这样定义,

代码语言:javascript
复制
android:id=”@+id/toolbar

findViewById(…)现在可以跟踪以下id它在res文件中查找id,或者只是在R.id目录中查找,并返回有问题的视图类型。另一个@id的行为与findViewById(…)相同 - 通过提供的id查找组件,但仅为布局保留。它最常见的用法是相对于组件返回的组件来放置组件。

代码语言:javascript
复制
android:layout_below=”@id/toolbar”
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11160954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档