Я пытаюсь создать многоразовый макет included.xml
, который затем может быть введен в другие макеты и настроен с помощью атрибутов тегов. Вот что у меня есть:привязка данных Android: не может вставить атрибут в тег «include»
res/layout/parent.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/com.myself.fancyapp"
>
<include layout="@layout/included"
app:src123="@drawable/my_icon" />
</layout>
res/layout/included.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
<data>
<variable name="src123" type="android.graphics.drawable.Drawable" />
</data>
<android.support.design.widget.FloatingActionButton
android:src="@{src123}" />
</layout>
app/build.gradle
:
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
dataBinding {
enabled = true
}
....
}
dependencies {
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
}
Как результат, кнопка, которую я стараюсь привнести не содержат любое изображение.
Если в parent.xml
меняю xmlns:app
к res-auto
, у меня есть следующее сообщение об ошибке в app/build/intermediate/data-binding-layout-out/debug/layout/parent.xml
:
Error:(17) No resource identifier found for attribute 'src123' in package 'com.myself.fancyapp'
Кто-нибудь есть идея, почему это происходит и как это исправить? Благодарю.
'XMLNS: приложение = "http://schemas.android.com/apk/res-auto"' держать это в parent.xml и увидеть выход –
@RaviRupareliya Спасибо за предложение, но, как уже упоминалось в последней части моего сообщения он выдает ошибку времени компиляции. – stillwaiting
для подтверждения вы используете DataBinding в классе, где вы используете parent.xml? или вы просто используете 'setContentView' или' inflater' для parent.xml? –