#android #kotlin #android-recyclerview
#Android #kotlin #android-recyclerview
Вопрос:
У меня есть RecyclerView, заполненный val microphones: MutableList<Microphone>
. В макете строки есть кнопка для удаления этого элемента из списка, который мне удалось запустить, но анимация идет не так. Похоже, что при обновлении RecyclerView удаляется последний элемент в списке, затем правильный элемент, а затем весь список под удаленным элементом анимируется до правильного состояния.
Вот соответствующие биты адаптера RecyclerView:
class RecyclerViewAdapter(
val microphones: MutableList<Microphone>
): RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val cellForRow = LayoutInflater.from(parent.context).inflate(R.layout.favorites_row, parent, false)
return ViewHolder(cellForRow)
}
override fun getItemCount(): Int {
return microphones.size
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val microphone = microphones[position]
holder.bind(microphone)
holder.favoritesButton.setOnClickListener {
microphones.remove(microphone)
notifyItemRemoved(position)
}
}
class ViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
val modelText = view.findViewById<TextView>(R.id.model_textView)
val brandText = view.findViewById<TextView>(R.id.brand_textView)
val favoritesButton = view.findViewById<ImageButton>(R.id.btnFavorite)
fun bind(
microphone: Microphone,
) {
modelText.text = microphone.model
brandText.text = microphone.brand
}
}
}
Вот экранная запись проблемы:
https://imgur.com/a/pJt3KwH
Комментарии:
1. Я полагаю, что проблема, вероятно, заключается в том, как вы удаляете элементы из микрофонов, не могли бы вы показать нам?
2. Я не уверен, что вы имеете в виду, помимо предоставленного кода.
microphones
это изменяемый список моегоMicrophone
объекта, который наследуется от родительского фрагмента. Я удаляю соответствующую запись с помощью прослушивателя onClick дляImageButton
в своей строке и просто удаляю запись из списка в onBindViewHolder. Какая другая информация была бы полезна?