Android - Gridview или listview?
Как создать такой вид в приложении?
(Снимок экрана - это приложение для Android, доступное на рынке Android).
![enter image description here]()
Я запутался, так как предполагаю, что мы можем создать такой же макет либо с помощью Gridview, либо с помощью ListView.
Проблемы:
- В Gridview можно выделить разделитель между двумя строками? можем ли мы дать фон каждой строке в gridview?
- В Listview, я думаю, мы можем настроить listview с тремя книгами в ряд с фоном, и мы также можем предоставить разделитель.
С вашей стороны, пожалуйста, предложите мне возможное решение для разработки и создания тех же макетов для приложения для Android.
Ответы
Ответ 1
Посмотрите на код Shelves, написанный Роменом Гаем (одним из создателей ListView).
Он использовал GridView:
Код стоит посмотреть, потому что он содержит и другие интересные решения.
Ответ 2
Заданные проблемы:
В Gridview можно дать разделитель между двумя строками? можем ли мы дать фон каждой строке в gridview?
Ну, вы всегда можете создать разделитель, добавив что-то в нижней части вашего представления. Сделайте так, чтобы он "соединялся" по сторонам, и вы не узнаете разницу. Это будет стоить вам дополнительного представления за элемент сетки, поэтому, вероятно, это не самый лучший вариант.
В Listview, я думаю, мы можем настроить listview с 3 книгами в ряд с фоном, и мы также можем предоставить разделитель.
Eeuhm, да, хотя я не понимаю, в чем проблема?
Ответ 3
С ListView каждая строка подсчитывается как элемент, поэтому в логике будет дополнительная работа, которая удерживает каждый элемент в строке отдельно. Я предлагаю вам использовать gridview. Для каждого элемента сетки держите пустую полку (для одной книги) в качестве фонового изображения. Это изображение будет содержать полку. Таким образом, нет необходимости в дополнительных рядах. Изображение должно выглядеть так:
![Grid Element Background]()
Ответ 4
Вместо этого я предложил бы иметь вид сетки и флиппер, если количество книг ограничено.
Просмотр флиппера даст лучший эффект, чем прокрутка.