Android - анимация движения контейнера не корректно обновляет содержащиеся кнопки хитбоксов - PullRequest
1 голос
/ 28 августа 2011

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

Я пробовал:

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

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

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

Буду признателен за любые идеи на данный момент!

Спасибо

1 Ответ

0 голосов
/ 28 августа 2011

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

...