Как заполнить пустые ячейки в GridView и сделать его неактивным - PullRequest
0 голосов
/ 15 января 2020

Это мой код GridView

    <GridView
        android:id="@+id/device_display_grid"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:columnWidth="100dp"
        android:numColumns="3"
        android:verticalSpacing="1dp"
        android:horizontalSpacing="1dp"
        android:background="#e5e5e5"/>

Вот так выглядит мой GridView

мой вид сетки

enter image description here

Я получаю данные из базы данных и использую эти данные для заполнения моего GridView. Мой вопрос заключается в том, как сделать так, чтобы пустой вид в правом нижнем углу отображался на белом фоне. Мне также нужно, чтобы мой onItemClickListner ничего не делал, если на него нажали. и предположим, что если у меня есть 2 пустых ячейки, то обе должны быть заполнены.

Ответы [ 2 ]

1 голос
/ 15 января 2020

Просто добавьте лишние пустые объекты в последний индекс массива.

 var emptycell=0
    if(array.size % 3 == 1) {
        array.add(EmptyObject())
        array.add(EmptyObject())
        emptycell=2
    } else if (list % 3 == 2) {
        array.add(EmptyObject())
        emptycell=1
    }

, и когда пользователь щелкает любой элемент, который вы можете проверить, позиция щелчка должна быть ниже, чем array.size - emptycell, как показано ниже.

if(position<array.size-emptycell){
//do whatever
}
0 голосов
/ 15 января 2020

Используйте до получения вашего адаптера:

if(list.size % 3 == 1) {
  list.add(YourModel())
  list.add(YourModel())
} else if (list % 3 == 2) {
  list.add(YourModel())
}

, если вы используете RecyclerView в своем адаптере:

//onBind
if(item.someField == null) {
  holder.cover.visibility = View.INVISIBLE
  holder.cover.visibility = View.INVISIBLE
}

//holder
fun setOnClickListener(item: YourModel) {
  if(item.someField == null) {
    vItem.setOnClickListener(null)
  } else {
    vItem.setOnClickListener(yourListener)
  }
}

Это не лучшая практика, это только быстрая идея.

PS Извините за Kotlin, я давно не писал в Java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...