Мне нужно сделать 2 экрана с пользовательской анимацией, как описано ниже:
Screen 1 Screen 2
----------------------------- ------------------------------
| | | | | |
| | | | | |
| | | | | |
| List 1 | List2 | ---------> | List 3 | List 4 |
| (75% width) |(25% wid)| |(25%wid)| (75% width) |
| | | | | |
| | | | | |
----------------------------- ------------------------------
- Пользователь делает длинное касание элемента в Списке 1 и скользит слева направо.
- Вид, содержащий Список 1, перемещается слева направо (до конца экрана) и исчезает. Отображается экран 2.
Я поместил каждый из списков в LinearLayout
, и все LinearLayout
s содержатся в корне LinearLayout
. После обнаружения пролистывания слева направо на List1
, я делаю это
</p>
<pre>
AnimationSet set = new AnimationSet(true);
Animation animation = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.75f,
Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f
);
animation.setDuration(500);
animation.setZAdjustment(Animation.ZORDER_TOP); // Keep the viewgroup on which this animation applies at the top.
set.addAnimation(animation);
LayoutAnimationController controller =
new LayoutAnimationController(set, 0.0f);
screenOne_layoutOne.setLayoutAnimation(controller);
screenOne_layoutOne.startLayoutAnimation();
</pre>
<p>
Мне удалось получить анимацию, но screenOne_layoutOne
(макет, содержащий List 1
) не остается на вершине. Анимация идет ниже List2
.
Может кто-нибудь сказать мне, где проблема?
Заранее спасибо.