Android - анимация движения контейнера не корректно обновляет содержащиеся кнопки хитбоксов

1

Поэтому у меня есть приложение, работающее на Android 2.2 (по желанию HTC). Когда пользователь нажимает клавишу меню, мои меню сильно скользят сверху и снизу. Это отлично работает. Или так я думал. Оказывается, что даже когда ImageButtons отключены от экрана и невидимы, удары по местам, где они были до того, как я вывел их из поля зрения, активируют кнопки.

Я пытался:

_top_slide_out_menu.forceLayout();
_top_slide_out_menu.recomputeViewAttributes(_measure);
_top_slide_out_menu.computeScroll();

Нет разницы. Возможно, это связано с тем, что я перемещаю родительский объект-контейнер с помощью анимации, а не самих кнопок. Я могу только предположить, что есть ошибка, которая не обновляет дочерние hitboxes. Эта ошибка также влияет на последующие анимации, которые я применяю к кнопке. У меня есть анимация, которую я запускаю на кнопке, которую я ранее перемещал, используя другую анимацию. Эта вторая анимация сжимается, а затем увеличивает кнопку, чтобы создать впечатление щелчка. Только половина кнопки перерисовывается, так как это половина, содержащаяся в области исходного местоположения кнопки.

Итак, вопрос в том, кто-нибудь сталкивался с этим? Есть ли что-нибудь, что можно попробовать, кроме как перемещать все кнопки в отдельности (что будет довольно утомительно)?

Я бы оценил любые идеи на этом этапе!

благодаря

Теги:
android-layout
android-animation

1 ответ

0
Лучший ответ

Анимация Android только сдвигает пиксели элементов управления пользовательского интерфейса, когда вы добавляете к ним анимацию. Чтобы на самом деле обновить макет после анимации, вы должны реализовать прослушиватель анимации и вручную обновить макет, но старый макет все равно останется с только сдвинутыми пикселями.

  • 0
    Ой! Так это по дизайну тогда? Это немного .... мусор. У меня возникли проблемы с представлением ситуации, когда вы на самом деле хотите этот эффект. Ну что ж, спасибо за совет. Я не думаю, что есть простой способ извлечь новые нарисованные координаты элемента управления, который был анимирован? Кажется довольно сумасшедшим, что они компенсируют код отрисовки, но не просто обновляют поля попаданий / основные координаты. Благодарю.
  • 0
    Я знаю, это довольно плохо. Специально для людей с iPhone. Но вот как система макета Android построена.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню