У меня есть куча View
с в <merge>
, и я включил это <merge>
в RelativeLayout
. Я пытаюсь сослаться на идентификаторы этих включенных View
s, чтобы выступать в качестве якорей для моих других View
s, но Eclipse жалуется, что идентификаторы не разрешаются. Я нашел обходной путь, используя @+id
вместо @id
, когда впервые ссылаюсь на них , а не когда фактически определяю объекты, на которые они ссылаются. Я уже определил два ID
в Style
и во включенном <merge>
, где они объявлены, так что будет немного неэффективно, если я продолжу повторять определение идентификатора.
Это правильный способ сделать это? Я предполагаю, что это плохо, потому что «+» - это еще одна инициализация. Моя текущая гипотеза заключается в том, что вы должны использовать @+id
, когда вы впервые используете идентификатор, а не когда вы инициализируете объект, который будет представлять идентификатор, немного похоже на C/C++
и как они требуют по крайней мере прототип функции в строках до фактического кода, который использует функцию.
Другой вопрос, который у меня возникает, - когда вы используете построитель пользовательского интерфейса на основе графического интерфейса Eclipse, я заметил, что они всегда используют @+id
, а не @id
. Это приемлемо, потому что это кажется мне неэффективным; как будто приложение будет тратить больше времени на определение того, был ли идентификатор объявлен в R.id
.