Я внедрил свой собственный HorizontalListView
, и я бы хотел использовать Scroller
для управления некоторыми событиями прокрутки, такими как flings. Метод Scroller
fling()
требует, чтобы я предоставил максимальный размер X и Y для моего компонента, и поэтому я немного затрудняюсь - лучший способ рассчитать размер моего списка?Максимальный размер списка для скроллера
Я подумал о нескольких подходов:
1) Максимальная ширина равна ширине элементов времени вывести количество элементов списка. Проблема в том, что они являются переменной шириной.
2) Создайте все элементы списка при начальной компоновке и рассчитайте максимальную ширину. Это кажется ужасно неэффективным.
3) (подход, который я никогда раньше использовал до сих пор), когда ребенок добавляются к моему HorizontalListView
приращению моего maxWidth
, а когда ребенок удаляются, уменьшает maxWidth
. Я использовал это, чтобы ограничить прокрутку до границ моего списка - если последний ребенок не был добавлен, то maxWidth
не имеет никакого отношения к делу, и как только последний ребенок был добавлен, он является точным. Проблема заключается в том, что при рассылке списка вычисляемый таким образом maxWidth
может не соответствовать фактическому максимальному размеру списка.
Любые другие предложения? В противном случае я мог бы реализовать свой собственный механизм Fling ...
Я, вероятно, придерживаюсь среднего размера, используя ваш подход № 1. – Budius
Это не отличный подход - к сожалению, размеры могут сильно различаться: от 1 символа TextViews до целых слов. – Catherine