Виджет Галерея подклассов для создания поведения "Тикер" - PullRequest
0 голосов
/ 04 октября 2011

Это в основном вопрос философии, поскольку реальная проблема решена.SDK предоставляет класс Gallery.Эта галерея на 90% от того, что мне нужно, просто не хватает 2 вещей.В одном я хочу реализовать дополнительный Runnable, который запускает периодические переходы к следующему элементу, а в двух он мне нужен для анимации прокрутки между элементами.

Автопериодическое продвижение было простым.Однако я столкнулся с серьезными проблемами, связанными с реализацией анимации прокрутки между элементами.Теперь я решил эту проблему, переопределив setSelection, чтобы она была обязательной оберткой для onFling.

На данный момент мой фон в основном Python, поэтому эта реализация кажется мне грязной.Я рассчитываю скорость на основе ширины родителей и затем вызываю onFling (null, null, my_calculated_velocity, 0).Мне кажется, что это неправильно, что если по какой-то причине способ, которым Google вычисляет расстояние от изменений скорости?

Теперь я просматриваю источник галереи и вижу множество способов, которые чувствуют себя намного лучше:moveNext scrollToChild mFlingRunnable.startUsingDistance

Ни один из которых не доступен из подкласса Gallery.В Python нет реальной концепции приватности, поэтому я нахожусь разочаровывающей, что когда я делаю что-то в java подклассе, мне приходится копировать вставки 2/3 класса просто для переопределения одного поведения.

Таким образом, вопрос в том, что я делаю что-то не так, что заставляет меня пытаться делать что-то, противоречащее Java-зерну, или я могу просто ожидать разочарования каждый раз, когда сажусь за работу над проектом android и нахожу все методы, которыеделать то, что мне нужно, чтобы быть приватным или по умолчанию, а не публичным или защищенным?

1 Ответ

0 голосов
/ 04 октября 2011

Галерея, как уже упоминалось, не очень хороший класс для расширения.На самом деле лучшим способом было бы просто получить источник и использовать его.

К вашему сведению, скорость ДОЛЖНА измениться, если устройство по какой-то причине мгновенно блокируется.это класс, который разработан неправильно / для чего-то другого.

...