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

Есть ли способ показать (горизонтальные) разделители между строками в 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 Studio
  • android, что не так с openFileOutput?
  • Как добавить (вертикальный) разделитель в горизонтальный LinearLayout?
  • Timertask или обработчик
  • Вращение изображения на canvasе в андроиде
  • Ошибка: слишком длинный путь к файлу в windowsх, ниже 240 символов
  • Какова роль адаптеров в Android?
  • Android AutoCompleteTextView с фильтрацией пользовательских адаптеров не работает
  • Могу ли я последовательно переключать асинхронную задачу (начиная с одной после завершения предыдущей асинтезы)
  • DialogFragment.getDialog возвращает null
  • Interesting Posts

    Как установить MBR внешнего жесткого диска?

    Нужно использовать мостовой адаптер только в Vagrant, нет NAT

    Индексы индексов должны быть либо натуральными натуральными, либо логическими, общим решением

    GROUP_CONCAT с лимитом

    Проблема с укладкой коробки

    Как включить подписку на Google Play

    Параметры запроса URL-адреса в Java

    Копирование из одного места в другое с использованием пакетного скрипта на основе измененной даты, а также новых добавленных файлов в исходном коде

    Конфигурация Log4net из атрибута сборки не загружает файл конфигурации

    Почему GetType возвращает System.Int32 вместо Nullable ?

    Разрешен ли объект сущности для запроса HTTP DELETE?

    Как мне выполнить слово Stemming или Lemmatization?

    Какую ссылку мне нужно использовать Microsoft.Office.Interop.Excel в .NET?

    Как я могу отформатировать этот путь для работы в качестве значения ключа реестра?

    Найти подключенные компоненты в графе

    Давайте будем гением компьютера.