Как работает прокрутка в приложении Google+ для Android? - PullRequest
2 голосов
/ 28 июля 2011

Во время игры с ним я заметил, что при прокрутке вверх и вниз в потоке из приложения Google+ для Android полоса прокрутки меняет размер в зависимости от размера (-ов) вертикальной (-ых) видимой в данный момент записи (-ий).).Например, если вы прокручиваете длинную публикацию, полоса уменьшается в размере, а если вы прокручиваете короткую запись, она удлиняется.Как это реализовано?

Теперь мне эта функция не особо нужна, но это всего лишь то, что пробудило мое любопытство.

1 Ответ

1 голос
/ 28 июля 2011

Это побочный эффект от использования утилизации ListView. По мере того как новые сообщения прокручиваются для просмотра, остальные элементы виртуализируются - в основном Android догадывается, сколько места займет остальная часть списка, но фактически не отображает их, поэтому не может быть уверен. Когда вы прокручиваете большой пост, он предполагает, что в остальной части списка есть большие посты, и поэтому список длиннее.

Вы можете получить ту же функциональность, используя параметр convertView getView, например, так:

@Override
public View getView(int position, View convertView, ViewGroup parent)
{
    View view = null;
    if(convertView == null)
    {
        view = // set your view here
    }
    else
    {
        view = convertView
    }
    // set all your properties on the view here.
    return view;
}
...