這是我的 viewholderClass,它在多個螢屏上顯示串列。
class TagViewHolder(itemView: View, listener: RecyclerViewItemClickListener?,isTraining: Boolean) : BaseViewHolder<AdapterTag>(itemView, listener) {
override fun onBindView(context: Context, data: AdapterTag ) {
itemView.tag_icon.setImageResource(data.getIconResId())
itemView.tag_name.text = data.getTitle()
itemView.tag_count.text = "[${data.getItemCount()}]"
//background color change of selected item in list
itemView.isSelected = (data.getItemCount() == 0)
}
}
這是我的可繪制類,它在下面的可繪制類中實作背景顏色更改。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<corners android:radius="@dimen/card_radius" />
<padding android:bottom="@dimen/card_vertical_padding"
android:left="@dimen/card_horizontal_padding"
android:right="@dimen/card_horizontal_padding"
android:top="@dimen/card_vertical_padding" />
<solid android:color="@color/cardBackgroundWithZeroItem"/>
</shape>
</item>
</selector>
這是我的串列背景類,它改變了 selected_state 中的背景顏色。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@drawable/training_tag_card_state"/>
<item>
<shape android:shape="rectangle">
<corners android:radius="@dimen/card_radius" />
<padding android:bottom="@dimen/card_vertical_padding"
android:left="@dimen/card_horizontal_padding"
android:right="@dimen/card_horizontal_padding"
android:top="@dimen/card_vertical_padding" />
<solid android:color="@color/cardBackground"/>
</shape>
</item>
</selector>
我的回收站視圖串列顯示在多個螢屏上,但我必須僅在特定螢屏上更改串列項的背景顏色,但在 tagViewHolder 中,它會更改每個螢屏上串列項的背景顏色如何使用 isTraining:Boolean(它適用于我的螢屏我想要更改串列項的背景顏色),以便我可以在所需的串列項螢屏上使用背景顏色。我應該在實作中更改什么以獲得上述問題的解決方案。
uj5u.com熱心網友回復:
將任何值從活動傳遞給配接器。根據該布林值,您已更改背景。
uj5u.com熱心網友回復:
您需要通過配接器傳遞 isTraining 布林值
例如:您有 2 個活動
A 和 B ,您只想更改 A Activity 中的串列項背景,因為您需要傳遞 isTraining 值 True
if (isTraining) {
itemView.parentView.background =
ContextCompact.getDrawable(itemView.parentView.context, R.drawable.resourceid)
} else {
//Default value
ContextCompact.getDrawable(itemView.parentView.context, R.drawable.resourceid)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/411579.html
標籤:
