gpt4 book ai didi

android - 具有主题属性的数据绑定(bind)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:14:05 24 4
gpt4 key购买 nike

我正在试用新的 Android Databinding Library我想使用绑定(bind)设置 ToolBar 的背景颜色。默认情况下,颜色应为 colorPrimary(来自主题)。

在我使用 DataBinding 之前,我的工具栏看起来像

 <android.support.v7.widget.Toolbar
android:id="@+id/mainToolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
/>

添加绑定(bind)后,如果没有绑定(bind)颜色,我想将其背景设置为 colorPrimary - 我为此使用三元运算符(如指南中所述) - 但它会导致错误,因为主题属性也有一个“?”他们名字前的运算符。编译器认为我正在开始一个新的三元运算。

<data>
<variable name="toolBarBackgroundColor" type="int"/>
</data>
...
<android.support.v7.widget.Toolbar
android:id="@+id/mainToolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@{toolBarBackgroundColor!=0? toolBarBackgroundColor: ?attr/colorPrimary }"
/>

那么有没有一种方法可以在绑定(bind)操作中访问主题属性?谢谢!

编辑

我知道我可以通过编程方式获取 colorPrimary 属性并通过 java 代码绑定(bind)它。但我只是想知道是否有基于 Xml 的解决方案。

最佳答案

答案有点晚了,但也许对某人有帮助。

要在数据绑定(bind)中访问主题属性,您可以使用:

(假设 clickableBoolean 变量)

android:background="@{clickable ? android.R.attr.selectableItemBackground : android.R.color.transparent}"

不需要额外的绑定(bind)适配器或其他东西。

关于android - 具有主题属性的数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31235519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com