Изменить выбранный цвет фона карты с помощью DiffUtilAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Изменить выбранный цвет фона карты с помощью DiffUtil

Сообщение Anonymous »


доброго времени. Используя DiffUtil, я хочу изменить цвет выделенного текста и представления карточки при каждом щелчке по любому элементу. Код, который я написал, выглядит следующим образом, но кажется, что срок действия notifyItemChanged истек. Спасибо за самую свежую информацию. Помогите мне написать более эффективный код.
класс КатегорииАдаптер @Inject конструктор(@ApplicationContext частный контекст val: Context) : RecyclerView.Adapter() { //Привязка частная привязка lateinit var: ItemCategoriesBinding частные элементы var = пустой список() частная переменная selectedItemPosition: Int = -1 частный вар LastItemSelectedPos = -1 переопределить удовольствие onCreateViewHolder (родитель: ViewGroup, viewType: Int): ViewHolder { привязка = ItemCategoriesBinding.inflate(LayoutInflater.from(parent.context), родительский, false) вернуть ViewHolder() } переопределить удовольствие onBindViewHolder(держатель: ViewHolder, позиция: Int) { Holder.bind(предметы[позиция]) /////// if (позиция == selectedItemPosition) Holder.selectedBg() еще Holder.defaultBg() Holder.itemView.setOnClickListener { selectedItemPosition = Holder.bindingAdapterPosition LastItemSelectedPos = if (lastItemSelectedPos == -1) selectedItemPosition else { notifyItemChanged (lastItemSelectedPos) выбранноеItemPosition } notifyItemChanged (выбранныйItemPosition) } } переопределить удовольствие getItemCount() = items.size переопределить удовольствие getItemViewType(позиция: Int) = позиция переопределить fun getItemId(position: Int) =position.toLong() внутренний класс ViewHolder: RecyclerView.ViewHolder(binding.root) { забавное связывание (пункт: ResponseCategoriesItem) { //initViews привязка.применить { titleCategories.text = item.title //просмотр карты //Нажмите root.setOnClickListener { onItemClickListener?.let { it(item.id!!, item.title!!) } } } } весело defaultBg() { привязка.применить { bgCard.setCardBackgroundColor(ContextCompat.getColor(context, R.color.Bright_Gray)) titleCategories.setTextColor(ContextCompat.getColor(context, R.color.Raisin_Black)) } } весело selectedBg() { привязка.применить { bgCard.setCardBackgroundColor(ContextCompat.getColor(context, R.color.Raisin_Black)) titleCategories.setTextColor(ContextCompat.getColor(context, R.color.white)) } } } частный var onItemClickListener: ((String, String) -> Unit)? = ноль fun setOnItemClickListener(слушатель: (String, String) -> Unit) { onItemClickListener = прослушиватель } fun setData(данные: List) { val адаптерDiffUtils = BaseDiffUtils (элементы, данные) val diffUtils = DiffUtil.calculateDiff(adapterDiffUtils) элементы = данные diffUtils.dispatchUpdatesTo(это) } }
xml-коды

Мой желаемый пользовательский интерфейс
Изображение

Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»