Скрыть/показать элементы RecyclerView после нажатия кнопки активностиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Скрыть/показать элементы RecyclerView после нажатия кнопки активности

Сообщение Anonymous »

У меня есть неопределенный список элементов (переопределить fun getItemCount() = list.size). Я хотел бы сначала показать пользователю только элемент позиции 0. После того, как я нажму кнопку «Просмотреть все» за пределами просмотра recyclerview, но в своей деятельности я хотел бы отобразить оставшиеся элементы моего списка.
Я могу заставить работать начальную часть в onBindViewHolder:

Код: Выделить всё

if (position > 0) {
view.foo.visibility  = View.GONE
}
else {
view.foo.visibility  = View.VISIBLE
}
но я не могу понять, как отобразить оставшиеся элементы, когда я нажимаю кнопку «Просмотреть все».
Я знаю, что мне нужен в моем адаптере и вызвать этот метод в действии ViewAll.onclickListnener. Я просто не уверен, что добавить в метод адаптера или как он взаимодействует с условиями внутри onBindViewHolder.
Есть ли какой-нибудь простой способ просто изменить list.size вперед и назад?< /p>
По возможности предпочтительнее использовать Kotlin.
Изменить:

Код: Выделить всё

class Adapter(private var list: List) : RecyclerView.Adapter(){

internal fun setDataSet(list: ArrayList) {
this.list = list
}

var showAll: Boolean = false

class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val textView: TextView = view.findViewById(R.id.textView)

}

override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(viewGroup.context)
.inflate(R.layout.recyclerview, viewGroup, false)

return ViewHolder(view)
}

override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) {

val model = list[position]

if(showAll){
println("showAll is triggered!")
viewHolder.textView.visibility = View.VISIBLE
viewHolder.textView.text = model.textView
}else{
viewHolder.textView.text = list[0].textView
if (viewHolder.adapterPosition > 0){
println("this is triggered!")
viewHolder.textView.visibility = View.GONE
}
}

println("listsize at start: $size")
}

fun updateAdapter(showAll: Boolean) {
this.showAll = showAll
notifyDataSetChanged()
println("listsize after click: $size")
}

override fun getItemCount() = list.size
MainActivity:

Код: Выделить всё

buttonPlus.setOnClickListener {
adapter.updateAdapter(true)
println("button pressed")
}

buttonMinus.setOnClickListener {
adapter.updateAdapter(false)
println("button pressed")
}
XML:

Код: Выделить всё








Подробнее здесь: [url]https://stackoverflow.com/questions/78975305/hide-show-recyclerview-items-after-activity-button-click[/url]
Ответить

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

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

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

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

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