Как создать фон для прокрутки в Gridview

#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.