Задать вопрос

Как добавить футер в GridView?

Есть GridView с рисунками. Нужно чтобы когда человек доходил до последней строки, он видел футер с надписью «Загрузка...» и ProgressBar'ом, пока загружается новая порция рисунков. Как это реализовать?


Я пробовал динамически подменять View последнего пункта в GridView внутри адаптера. Но он не растягивается на всю ширину экрана.


Куда копать?
  • Вопрос задан
  • 3873 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
palmut
@palmut
На всю ширину можно сделать, если бы был GridLayout… Один из вариантов, который пришел в голову, это показывать отдельно компонент загрузки вне GridView. Т.е. положить GridView и вот этот компонент загрузки в FrameLayout, установить свой наблюдатель setOnScrollListener(AbsListView.OnScrollListener l) и при появлении последнего элемента (который сейчас подменяемый View) управлять видимостью и высокой компонента, показывающего загрузку — координаты компонента по вертикали брать от подменяемого View. Чуть-чуть этот метод упоминается тут habrahabr.ru/post/130319/
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
palmut
@palmut
В посте, на который указал есть вот такая часть:

mList.setOnScrollListener(new OnScrollListener() {

        @Override
        public void onScrollStateChanged(AbsListView arg0, int arg1) {}
            
            @Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
                if (visibleItemCount > 0 && firstVisibleItem + visibleItemCount == totalItemCount &&
                            hasNextPage()) {
                    loadNextPage();
                }
            }
    });
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы