Databinding selector in TextView textColor
Asked Answered
M

1

5

I am trying to set colors from a textview based on the number of unread messages in a channel. Like so:

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

this only sets the color of the title, while:

android:textColor="@color/selector_conversation_row_title_unread"

this code sets the textColor as a selector, and if i press the TextView the color changes unlike the first statement.

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>

Why does the selector only work as?:

android:textColor="@color/selector_conversation_row_title_unread"
Mogador answered 13/9, 2016 at 14:27 Comment(0)
E
25

Android Data Binding doesn't know about resource types, so you must supply it in the expression:

android:textColor="@{channel.unreadCount > 0 ? @colorStateList/selector_conversation_row_title_unread : @colorStateList/selector_conversation_row_title_read}"
Erlin answered 14/9, 2016 at 18:12 Comment(2)
Thanks, this is a great help!Mogador
Great, its wokring for me.Instigate

© 2022 - 2024 — McMap. All rights reserved.