разделители / разделители строк сетки андроида
Есть ли способ показать (горизонтальные) разделители между строками в gridview?
Я попытался поместить небольшое разделительное изображение ниже каждого элемента сетки, но это не решение, потому что оно не будет охватывать всю строку, если строка не заполнена предметами.
Есть ли способ добавить изображение между каждой строкой? Я могу найти методы для изменения пространства между строками.
- Android - как получать трансляции намерения ACTION_SCREEN_ON / OFF?
- Исключение: OutOfMemoryError
- Google Analytics блокирует Android-приложение
- Проблема ViewPager + RecyclerView в android
- Android - создание CSV-файла из значений таблицы
- ANDROID: разделить экран на 2 равных части с 2 списками
- Виджет не обновляется при перезапуске
- Является ли AsyncTask действительно концептуально ошибочным или я просто что-то пропустил?
- Добавить новый элемент в значок на кнопке - Android
- Как добавить к моему андроидному приложению кнопку, чем нравится на странице facebook?
- Создайте xml-файл и сохраните его во внутреннем хранилище android
- Android ListView заголовки
- Как отключить прокрутку RecyclerView?
Если вы используете настраиваемый макет для элементов сетки. Ниже будет работать код.
Шаг 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
чтобы быть в безопасности, но я не думаю, что это имеет значение в этом случае.
Я предлагаю сделать следующее:
`
`