2016-09-13 11 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:?:

android:textColor="@color/selector_conversation_row_title_unread" 

答えて

6

Androidのデータバインディングがそう、リソースタイプについて知らないよう

<?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="@{channel.unreadCount > 0 ? @colorStateList/selector_conversation_row_title_unread : @colorStateList/selector_conversation_row_title_read}" 
+0

ありがとう、これは大きな助けになります! – Arnout

関連する問題