Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

OnScroll ListView по пикселам - Программирование Android

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

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

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

Ведь в обычном (встроенном в андроид-списки) скролинге есть все это!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2014, 19:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос OnScroll ListView по пикселам (Программирование Android):

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

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

Данные из SQlite в ListView, обработка события ListView - Программирование Android
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД. mList.setOnItemClickListener(new...

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

Копирование данных из 1 listView во 2 listView - Программирование Android
Нужно что бы при нажатии на один элемент в первом ListView он копировался во второй ListView причём многократно.Но я использую...

Использование ListView в ListView - Программирование Android
Всем привет. Можете показать как использовать ListView в ListView, с заполнением как внешнего ListView, так и внутреннего причем с...

9
verylazy
Заблокирован
25.02.2014, 19:52 #2
а проблема в чем?
0
Tester64
396 / 357 / 43
Регистрация: 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 / 43
Регистрация: 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 / 16
Регистрация: 26.12.2010
Сообщений: 691
26.02.2014, 10:47 #6
а что мешает получить первый элемент в списке и у него взять верхнюю или нижнюю границу? они изменяются то как раз в пикселях
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
26.02.2014, 17:04  [ТС] #7
Цитата Сообщение от NiRamz Посмотреть сообщение
взять верхнюю или нижнюю границу
А КАК? Мне это вполне подходит, но не нашел ни одного примера по этому и даже не понимаю как получить от первой строки больше чем просто выстоту. Как получить смещение первого элемента?
0
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
27.02.2014, 11:07 #8
view.getLeft, .getTop, .getRight, .getBottom
0
Tester64
396 / 357 / 43
Регистрация: 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 / 16
Регистрация: 26.12.2010
Сообщений: 691
07.03.2014, 11:11 #10
именно так, в адаптере хранятся элементы и по мере необходимости дергаются, в лейауте же мы можем дернуть то что видно на экране и обычно по несколько итемов за пределами.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2014, 11:11
Привет! Вот еще темы с ответами:

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

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

Создание TBitmap по пикселам - Delphi
Здравствуйте! Не пойму как реализовать создание TBitmap по пикселю. Что бы понять основную суть, нужен исходник. К примеру var b1, b2 :...

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


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
07.03.2014, 11:11
Ответ Создать тему
Опции темы

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