You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DataBinding中能否使用主题属性作为数据绑定的默认值?

Android DataBinding:主题属性作为默认值的可行性及实现方式

可以使用主题属性作为DataBinding的默认值,但需要调整语法格式,以下是具体实现:

正确代码示例

你需要将默认值的前缀从?attr/改为@?attr/,修改后的代码如下:

android:background="@{toolbarColors.backgroundColor, default=@?attr/color_primary}"

语法说明

在DataBinding的默认值规则中,引用主题属性必须使用@?attr/属性名的格式,而非直接使用?attr/。这种写法能让DataBinding编译时正确识别主题属性,当绑定的toolbarColors.backgroundColor为null或未赋值时,会自动应用主题中定义的color_primary属性值。

验证前提

确保你的应用主题中已正确定义目标属性,例如在styles.xml中:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <item name="color_primary">@color/custom_primary_color</item>
</style>

内容的提问来源于stack exchange,提问作者Filipkowicz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 17:17:01