Intereting Posts
Измените значение R.string программно EditText и InputFilter вызывают повторяющийся текст Добавление библиотек поддержки в Android-проект Android – панель инструментов и строка состояния в качестве общих объектов с изменениями содержимого AdbCommandRejectedException Получение свойств при тестировании на эмуляторе Где находится Eclipse Marketplace в Android SDK Как я могу безопасно записывать видео с низким разрешением на Android по целому ряду устройств? Phonegap Cordova – Черная строка состояния внизу после полноэкранного режима Превращение строки в Uri … (Android) Почему одноэлементный класс выживает? Предотвращение слишком большого растрового изображения для добавления в текстуру android Android: NullPointerException при DialogFragment.dismissInternal в DialogFragment.dismissAllow Что делать с AsyncTask в onPause ()? Поддержка как ландшафтных ориентаций в Honeycomb Android, как переопределить проверку подключения к Интернету при подключении к Wi-Fi сети?

Как получить первый видимый вид из Android ListView

Есть ли способ получить первый видимый вид из списка в Android?

Я могу получить данные, которые поддерживают первый вид в адаптере, но, похоже, я не могу получить первый вид в ListView.

Я хочу изменить первый видимый вид после завершения действия прокрутки. Я знаю, что мне не следует сохранять ссылки на представление.

Solutions Collecting From Web of "Как получить первый видимый вид из Android ListView"

Фактически элементы ListView являются только дочерними элементами ListView. Итак, первый видимый элемент ListView:

listView.getChildAt(0) 

ListView имеет функцию getFirstVisiblePosition поэтому, чтобы получить первое видимое представление, код будет выглядеть следующим образом:

listView.getChildAt(listView.getFirstVisiblePosition());

Действительно listView.getChildAt(listView.getFirstVisiblePosition()) дает первый видимый элемент,
НО это может быть половина видимого элемента списка.

Чтобы получить первый полностью видимый элемент списка,

 if (listView.getChildAt(0).getTop() < 0) { int firstCompletelyVisiblePos = listView.getFirstVisiblePosition() + 1; } 

ListView.scrollBy (0, -40);

Это очень хорошо работает

Вы можете использовать следующий код:

 for (int i = 0; i <= conversationListView.getLastVisiblePosition() - conversationListView.getFirstVisiblePosition(); i++) { View listItem = conversationListView.getChildAt(i); }