Я только что начал использовать андроид, и у нас осталось около 5 макетов. Тем не менее, я просто понял, что я использую @id и @ + id взаимозаменяемо, но я не уверен, что такое точная разница между ними.В чем разница между @id и @ + id?
ответ
Вам необходимо использовать @+id
, когда вы определяете свой собственный идентификатор для представления.
Именно из документы:
на-символ (@) в начале строки указывает на то, что XML парсер должен анализировать и расширить остальную часть строки идентификатора и идентифицировать его как ресурс идентификатора. Символ плюса (+) означает, что это новое имя ресурса, которое должно быть создано и добавлено в наши ресурсы (в файле R.java). Существует ряд других идентификационных ресурсов, которые предлагаются платформой Android. Когда вы ссылаетесь на идентификатор ресурса Android , вам не нужен символ плюса, но он должен добавить пространство имен пакетов android .
А теперь я добавить для вас практического примера:
<Button
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/start"
/>
Так вот, вы создали два IDs
, запуск и проверку. Затем в вашем приложении вы можете подключиться к ним с помощью findViewById(R.id.start)
.
И это android:layout_below="@id/start"
относятся к существующим id.start
и означает, что ваш Button
с идентификатором проверки будет позиционироваться ниже Button
с идентификатором начать.
андроид: идентификатор = "@ + идентификатор/my_button"
+ ID Plus петь говорит андроида, чтобы добавить или создать новый идентификатор ресурсов.
андроид: layout_below = "@ идентификатор/my_button"
это только поможет передать уже сгенерированный идентификатор ..
Иногда вы должны использовать знак +. Например. при использовании <include ... />
и включаемый файл выглядит следующим образом:
<?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"
вы получите ошибку при построении проекта:
Error:(9, 24) No resource found that matches the given name (at 'layout_anchor' with value '@id/view_pager').
Это случилось со мной мне в проекте с библиотеками.
Чтобы получить доступ к виджету (или компоненту) на Java или сделать его зависимым от других, нам нужно уникальное значение для его представления. Это уникальное значение предоставляется атрибутом android: id, который по существу добавляет идентификатор, предоставленный как суффикс для @ + id /, в файл ресурсов id для других запросов.Идентификатор для панели инструментов можно определить, как это,
android:id=”@+id/toolbar
Следующая идентификатор Теперь можно отслеживать findViewById (...), который смотрит на него в разрешении файла для идентификатора, или просто каталог R.id и возвращает тип рассматриваемого вопроса. Другой, @id, ведет себя так же, как findViewById (...) - ищет компонент по предоставленному идентификатору, но зарезервирован только для макетов. Наиболее общим его использованием является размещение компонента относительно возвращаемого компонента.
android:layout_below=”@id/toolbar”
- 1. В чем разница между селекторами #id и [id $ = 'id']?
- 2. Разница между $ ("# id") и $ ("[id =]")
- 3. В чем разница между dojoAttachpoint и id.
- 4. В чем разница между void * и id?
- 5. В чем разница между @ + id/android: list и @ + id/list
- 6. В чем разница между socket.to (id) и socket.broadcast.to (id)?
- 7. В чем разница «@ + android: id» и «@ + id»?
- 8. разница между @id и @android: id
- 9. В чем разница между android: id = "@ + id/btnSet" и android: id = "@ id/btnSet"?
- 10. JQuery какая разница между $ (# id) и $ ([id =])
- 11. разница между Request.QueryString [ «ID»] и запрос [ «ID»]
- 12. В чем разница betwenn @ id/и @ + id/in android?
- 13. В чем разница: (id) отправителя?
- 14. , что разница между $ ('элемент, #ID') и $ ('элемент', '#id') в JQuery
- 15. Разница между ('#ID') и селекторами $ ('# ID') в jquery
- 16. Разница между hash() и id()
- 17. В чем разница между id и _id в мангусте?
- 18. В чем разница между id и NSObject в Objective C?
- 19. Разница между $ {"id"} и # {"id"} для получения ссылки на объект?
- 20. В чем разница между id и objectId для parse.com
- 21. В чем разница между одним знаком и открытием ID
- 22. В чем разница между получением DOM через id и классом
- 23. В чем разница между идентификатором id и классом?
- 24. В чем разница между facebook идентификатор и графика ID
- 25. В чем разница между IMAPMessage.getUID() и заголовком Message-ID?
- 26. В чем разница между Element и Element ID?
- 27. Разница между $ find ("id"). Focus() и $ ("# id"). Focus()
- 28. Цель-C: разница между id и void *
- 29. Разница между $ ("# id"). Load и $ .ajax?
- 30. разница между @android: ID/* и @ + идентификатор/*
Хорошо, спасибо, это означает, что я могу использовать @ + id, когда захочу, без проблем? – JuiCe
Да, если вы хотите создать новый уникальный идентификатор, просто используйте @ + id, как это понимается в документах. – Sajmon
@Sajmon создаст проблему, когда я использую android: layout_below = "@ + id/start" вместо android: layout_below = "@ id/start". Или это может создать проблему после долгого времени? – Bora