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

Есть ли способ показать (горизонтальные) разделители между строками в 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 чтобы быть в безопасности, но я не думаю, что это имеет значение в этом случае.

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

`

              ` 
  • Текст маркировки на Android
  • Как определить, является ли тип сети 2G, 3G или 4G
  • android: listview в списке
  • Папка JNI в Android Studio
  • Как автоматически автофокусировать камеру Android?
  • Не удалось выполнить dex: превышение верхнего предела GC в Eclipse
  • как снимать камеру без предварительного просмотра из службы или streamа?
  • «R не может быть разрешено переменной»?
  • Как отладить apk, подписанный для выпуска?
  • Понимание концепций canvasа и поверхности
  • Можно ли использовать один и тот же файл хранилища ключей для подписания двух разных приложений?
  • Давайте будем гением компьютера.