2016-09-13 2 views
2

Я пытаюсь установить цвета из текстового представления на основе количества непрочитанных сообщений в канале. Как так:Селектор привязки данных в TextView textColor

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" 

ответ

6

Android Data Binding не знает о типах ресурсов, так вы должны указать его в выражении:

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

Спасибо, это отличная помощь! – Arnout