android - TextView textColor 中的数据绑定(bind)选择器

标签 android data-binding textview selector textcolor

我正在尝试根据 channel 中未读消息的数量设置 TextView 的颜色。像这样:

android:textColor="@{channel.unreadCount > 0 ? @color/selector_conversation_row_title_unread : @color/selector_conversation_row_title_read}"

这只设置了标题的颜色,同时:

android:textColor="@color/selector_conversation_row_title_unread"

此代码将 textColor 设置为选择器,如果我按下 TextView,颜色会发生变化,这与第一条语句不同。

selector_conversation_row_title_unread:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:state_pressed="false" android:color="@color/colorConversationTitleUnread"/>
    <item android:state_focused="true" android:state_pressed="true" android:color="#ffffff"/>
    <item android:state_focused="false" android:state_pressed="true" android:color="#ffffff"/>
    <item android:color="@color/colorConversationTitleUnread"/>
</selector>

selector_conversation_row_title_read:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:state_pressed="false" android:color="@color/colorConversationTitle"/>
    <item android:state_focused="true" android:state_pressed="true" android:color="#ffffff"/>
    <item android:state_focused="false" android:state_pressed="true" android:color="#ffffff"/>
    <item android:color="@color/colorConversationTitle"/>
</selector>

为什么选择器只能用作?:

android:textColor="@color/selector_conversation_row_title_unread"

最佳答案

Android 数据绑定(bind)不知道资源类型,因此您必须在表达式中提供它:

android:textColor="@{channel.unreadCount > 0 ? @colorStateList/selector_conversation_row_title_unread : @colorStateList/selector_conversation_row_title_read}"

关于android - TextView textColor 中的数据绑定(bind)选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39472503/

相关文章:

android - 我怎样才能等到 onsuccess 监听器在 Kotlin 中有结果

java - getReseources() 位图数组出现 NullPointerException

wpf - 使用 StyleTriggers 自动隐藏进度条

android - ConstraintLayout 剪辑文本中的 TextView

android - 使用 ViewPager 跨多个 TextViews/Fragments 拆分文本

javascript - 使用react-native构建android应用程序时如何解决命令节点问题?

java - 尝试使用 ArrayList<string> 创建 bundle 并将其传递给另一个 Activity VIA Intent

android - Glide 显示错误 : Failed to find GeneratedAppGlideModule

javascript - 在WinJS中将列表绑定(bind)到多个目标div

Android,如何限制 TextView 的宽度(并在文本末尾添加三个点)?