【发布时间】:2017-06-20 18:35:34
【问题描述】:
我创建了包含图像和标题的自定义布局。为了重用这个布局,我使用了<include> 标签。问题是我什至无法 将字符串文字 绑定到包含的布局中。我试图关注这些instructions,但没有成功。
layout/titlebar.xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="title" type="String"/>
<!-- <variable name="imgSrc" type="android.graphics.drawable.Drawable" /> -->
</data>
<LinearLayout ... >
<!-- <ImageView ... android:src="{imgSrc}" /> -->
<TextView ... android:text="@{title, default=DefaultTitle}" />
</LinearLayout>
</layout>
layout/otherlayout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:bind="http://schemas.android.com/apk/res-auto"
...
>
<!-- bind:imgSrc="@{@drawable/some_image}" -->
<include layout="@layout/titlebar"
bind:title="@{Example}" <---------- does not work
/>
...
</LinearLayout>
在 gradle 中我为模块启用了数据绑定:
android {
...
dataBinding {
enabled = true
}
...
}
【问题讨论】:
-
这应该可以,确保您在 Activity/Fragment 中绑定了该 xml
-
@RaviRupareliya 所以我需要绑定来自 Activity 类的数据?我虽然传递字符串常量不需要在课堂上写东西。有什么办法可以从 xml 绑定常量?
-
我还没有尝试过,但我猜至少你需要绑定你的 xml。我仍然不确定,但您可以尝试绑定 Activity,例如
DatabindingUtil.setContentView(this,<activityLayout>); -
@RaviRupareliya
DatabindingUtil.setContentView(this,R.layout.otherlayout);成功了!谢谢!
标签: android android-databinding