Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
1

OnScroll ListView по пикселам

25.02.2014, 19:26. Просмотров 898. Ответов 9
Метки нет (Все метки)

OnScroll дает только индекс верхней записи. Пытаюсь нарисовать свой скролинг рядом со списком и... если элементы большой высоты, то скролинг не двигается пока верхний не перепрыгнет на следующий.

Можно ли получить высоту списка в пикселах?
Можно ли получить смещение верхнего элемента в пикселах за пределами окошка?
Можно ли поймать факт того что мы достигли конца списка?

Ведь в обычном (встроенном в андроид-списки) скролинге есть все это!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2014, 19:26
Ответы с готовыми решениями:

ListView. После добавления кнопки перестал быть доступен сам ListView
Кастомизировал ListView с помощью нескольких TextView. Но после того, как...

Listview вывод данных и переход по нажатию на другой Listview SQLite
Доброго извините за название темы, долго не мог сформировать название, В общем...

Передача данных из ListView в другой Activity в ListView
Добрый день. Пытаюсь разобраться с передачей данных с ListView, но выходит что...

Данные из SQlite в ListView, обработка события ListView
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные...

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton?
Добрый день. Затрудняюсь понять один момент: У меня есть ListView,...

9
verylazy
Заблокирован
25.02.2014, 19:52 2
а проблема в чем?
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
25.02.2014, 20:18  [ТС] 3
Цитата Сообщение от verylazy Посмотреть сообщение
а проблема в чем?
1) в отличии от стандартного скролинга в списке получаю не плавное движение, а ступенчатое - при смене верхней строчки. На больших строчках при коротком списке СИЛЬНО прыгает.

2) если я в конце списка и помещается на экране (например) 4.5 строки, то не могу вычислить что скроллинг в конце. Всегда показывает начало 5го от конца. Всегда остается зазор.

на встроенном таких проблем нет...
0
verylazy
Заблокирован
25.02.2014, 20:33 4
честно говоря яснее не стало
А с кодом не проще будет? а то тяжело такой даст ист фантастиш представить только со слов.
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
25.02.2014, 22:29  [ТС] 5
Цитата Сообщение от verylazy Посмотреть сообщение
А с кодом не проще будет?
Кода уже больше 5 страниц в чужом огромном проекте (больше мегабайта кода). Вырезать только нужное и загнать в отдельный проект - тяжело.

Попробую обьяснить еще раз:

1) Рядом со списком рисуется свой скролиг на отдельном канвасе. (Нужна своя подложка под скролингом. Да и то за что хватают пальцем должно быть красивее стандартного FastScroll'a.)

2) Прежде чем убрать стандартный скролинг, пытаюсь поделать ВСЕ функции стандартного скролинга. (тащить пальцем за скролинг как за FastScroll, реагировать на изменение позиции в списке при листании пальцем по самим строкам и командами, показывать какая часть списка сейчас видна)

НО...
3) Мне МАЛО знать индекс позиции начального и конечного элемента видимого на экране в текущий момент и общее количество записей в списке для правильного скролинга!!! (только это мне дает OnScroll)

Строки бывают разной высоты и не всегда листаются пальцем полностью (иногда хочется пролистать пальцем только на несколько пикселов)

Нужны ПИКСЕЛЫ а не индексы! для плавной отрисовки.
Или даже размеры и позиция стандартного скролига в пикселах.

Например: Ошибка возникает если список состоит всего из 2х строк по 5 размеров экрана каждая (в каждой строке куча текста - в примерах гугла такое есть). Скролинг рисует полоску разделенную на 2 одинаковые части и закрашивает половину. И перескочит на следующий только когда закончится первая строка в 5 экранов. Когда должен показать квадратик в 1/10 высоты. И плавно его двигать по мере плавного листания.
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
26.02.2014, 10:47 6
а что мешает получить первый элемент в списке и у него взять верхнюю или нижнюю границу? они изменяются то как раз в пикселях
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
26.02.2014, 17:04  [ТС] 7
Цитата Сообщение от NiRamz Посмотреть сообщение
взять верхнюю или нижнюю границу
А КАК? Мне это вполне подходит, но не нашел ни одного примера по этому и даже не понимаю как получить от первой строки больше чем просто выстоту. Как получить смещение первого элемента?
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
27.02.2014, 11:07 8
view.getLeft, .getTop, .getRight, .getBottom
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
07.03.2014, 08:34  [ТС] 9
все еще не решил проблему...
Цитата Сообщение от NiRamz Посмотреть сообщение
view.getLeft, .getTop, .getRight, .getBottom
Как получить view элемента в списке? Желательно по номеру?

Добавлено через 1 час 7 минут
все! кажется нашел! Ожидал найти в адаптере, а нашел листвью:
=lv1.getChildAt(firstVisibleItem);
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
07.03.2014, 11:11 10
именно так, в адаптере хранятся элементы и по мере необходимости дергаются, в лейауте же мы можем дернуть то что видно на экране и обычно по несколько итемов за пределами.
0
07.03.2014, 11:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2014, 11:11

Копирование данных из 1 listView во 2 listView
Нужно что бы при нажатии на один элемент в первом ListView он копировался во...

Переход из Listview в Listview
Как сделать, что бы когда нажимаешь в главном листвью на кнопку, открывалось...

Использование ListView в ListView
Всем привет. Можете показать как использовать ListView в ListView, с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru