#android #gridview
#Android #просмотр сетки
Вопрос:
Мне нужно создать какой-то вид, похожий на книжную полку, для приложения для Android, которое я разрабатываю. Первое, что я подумал использовать, это gridview, где каждый элемент был бы книгой на полке. У меня уже есть рисунок, и после подключения на стороне сервера у меня получается симпатичная книжная полка, заполненная книгами.
Но как только я получаю больше книг, чем может поместиться на экране, GridView позволяет мне прокручивать вниз, чтобы увидеть больше книг, чего я и ожидаю. Чего я не ожидал, так это того, что фоновое изображение останется на одном месте, в то время как gridview, содержащий книги, скользит вверх.
Итак, это широкий вопрос, есть ли какой-либо способ выполнить то, что я хочу, с помощью Gridview? Или мне лучше начать искать другие альтернативы?
Комментарии:
1. вы выполнили реализацию ..? Я только что нарисовал линии полки в расширенном классе Gridview в onDraw на основе высоты изображения книги. Но когда я прокручиваю gridview, элементы прокручиваются. Но сетка не прокручивается. Чего я хочу, так это того, что при прокрутке GridView элементы должны прокручиваться по строкам полки… Можете ли вы, пожалуйста, мне помочь…
Ответ №1:
Этот пример приложения, написанный инженером Android, включает класс, который расширяет GridView для создания книжной полки, которая прокручивается правильно:http://code.google.com/p/shelves
Или, более конкретно: http://code.google.com/p/shelves/source/browse/trunk/Shelves/src/org/curiouscreature/android/shelves/view/ShelvesView.java
Комментарии:
1. Я как раз собирался предложить это — определенно правильный путь!
2. Спасибо, Кристофер, в данный момент я просто просматриваю этот код, похоже, это действительно правильный путь.
Ответ №2:
Поместите свой GridView внутри ScrollView
Комментарии:
1. Я пробовал это раньше, и простое использование моего GridView в качестве дочернего элемента ScrollView не решило проблему. Возможно, это нуждается в дополнительной настройке, я не знаю.
2. Это плохая идея, вы не должны помещать какой-либо AbsListView внутри scrollview, поскольку listview уже прокручивается. Главное — нарисовать фон со смещением относительно величины прокрутки, как это делается в приложении Shelves.