разделители / разделители строк сетки андроида

Есть ли способ показать (горизонтальные) разделители между строками в gridview?

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

Есть ли способ добавить изображение между каждой строкой? Я могу найти методы для изменения пространства между строками.

Если вы используете настраиваемый макет для элементов сетки. Ниже будет работать код.

Шаг 1. Дайте цвет фона GridView

Это будет служить разделителем.
Дайте horizontalSpacing и verticalSpacing как 1dp
backgroundColor будет вашим цветом разделителя.

  1  

Шаг 2. Дайте цвет фона в макет элемента пользовательской сетки.

Это будет основным цветом для GridItems.
В моем случае я сохранил его белый (#fff)

      

результат

введите описание изображения здесь

Заметка:
Если вы не хотите вертикальный разделитель, держите horizontalSpacing = 0dp
Если вам не нужен горизонтальный разделитель, держите verticalSpacing = 0dp

Я закончил создание настраиваемого gridview, что-то вроде этого:

https://stackoverflow.com/a/9757501/1310343

используя фоновое изображение, которое точно так же высоко, как один элемент в моем gridview, и имеет дрейдер внизу.

Работает как шарм!

Просто хотел поделиться тем, как я это сделал, используя ссылку, принятую OP. Для моего случая мне также нужно было контролировать длину разделителей, поэтому я не мог обойти подclassификацию GridView .

 public class HorizontalSeparatorGridView extends GridView { // Additional methods @Override protected void dispatchDraw(Canvas canvas) { final int count = getChildCount(); for(int i = 0; i < count; i++) { View child = getChildAt(i); int bottom = child.getBottom(); int left = child.getLeft(); int right = child.getRight(); Paint paint = new Paint(); paint.setColor(0xffececec); paint.setStrokeWidth(Math.round(0.5 * density)); int offset = // Some offset canvas.drawLine(left + offset, bottom, right - offset, bottom, paint); } super.dispatchDraw(canvas); } 

Я подclassифицировал dispatchDraw а не onDraw чтобы быть в безопасности, но я не думаю, что это имеет значение в этом случае.

Я предлагаю сделать следующее:

`

              ` 
  • Как обрабатывать OutOfMemoryError
  • Android - получить детей внутри представления?
  • Какова цель тега Android в XML-макетах?
  • Android: как обращаться с кнопкой
  • Сообщение для facebook wall from android fb sdk всегда ошибка
  • Дооснащение и OkHttpClient, тайм-аут соединения catch в методе сбоя
  • Вызов API REST из приложения Android
  • Ваш путь к проекту содержит символы, отличные от ASCII, android studio
  • Proguard вызывает RuntimeException (Unmarshalling неизвестный тип кода) в classе Parcelable
  • Камера Android в портрете на SurfaceView
  • загрузить видео в facebook в android
  • Давайте будем гением компьютера.