Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
1

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

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

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

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

Ведь в обычном (встроенном в андроид-списки) скролинге есть все это!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2014, 19:26
Ответы с готовыми решениями:

Onscroll перестает работать
Здравствуйте! Есть такая проблема. Делаю страницу - фотогаллерею. При нажатии на любую...

Проверить доступность события onscroll
как можно проверить доступность события onscroll? если проверить typeof(window.onscroll) то это...

Создание TBitmap по пикселам
Здравствуйте! Не пойму как реализовать создание TBitmap по пикселю. Что бы понять основную суть,...

Есть ли подобная альтернатива window.onscroll?
Есть ли подобная альтернатива, но с более плавным скроллом, без передергивания? Без аякс, ангуляр....

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

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

на встроенном таких проблем нет...
0
Заблокирован
25.02.2014, 20:33 4
честно говоря яснее не стало
А с кодом не проще будет? а то тяжело такой даст ист фантастиш представить только со слов.
0
420 / 357 / 47
Регистрация: 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
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
26.02.2014, 10:47 6
а что мешает получить первый элемент в списке и у него взять верхнюю или нижнюю границу? они изменяются то как раз в пикселях
0
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
26.02.2014, 17:04  [ТС] 7
Цитата Сообщение от NiRamz Посмотреть сообщение
взять верхнюю или нижнюю границу
А КАК? Мне это вполне подходит, но не нашел ни одного примера по этому и даже не понимаю как получить от первой строки больше чем просто выстоту. Как получить смещение первого элемента?
0
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
27.02.2014, 11:07 8
view.getLeft, .getTop, .getRight, .getBottom
0
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
07.03.2014, 08:34  [ТС] 9
все еще не решил проблему...
Цитата Сообщение от NiRamz Посмотреть сообщение
view.getLeft, .getTop, .getRight, .getBottom
Как получить view элемента в списке? Желательно по номеру?

Добавлено через 1 час 7 минут
все! кажется нашел! Ожидал найти в адаптере, а нашел листвью:
=lv1.getChildAt(firstVisibleItem);
0
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
07.03.2014, 11:11 10
именно так, в адаптере хранятся элементы и по мере необходимости дергаются, в лейауте же мы можем дернуть то что видно на экране и обычно по несколько итемов за пределами.
0
07.03.2014, 11:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2014, 11:11
Помогаю со студенческими работами здесь

Доступ к пикселам рисунка (не в аплете)
Народ! Проблема заключается в следующем - нужен доступ к пикселам загруженного битмэпа но не в...

Работа с 48bit ной графикой по пикселам
Всем доброго времени суток. Задача в двух словах - получить доступ к цветам RGB каждого пикселя...

Как по пикселам "прочитать" картинку jpg
Понимаю, что для вас это несложно, но я реально не могу разобраться. Короче, в форме есть картинка...

Как по пикселам "прочитать" картинку jpg
Понимаю, что для вас это несложно, но я реально не могу разобраться. Короче, в форме есть картинка...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru