Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具有多个动画片段的活动_Android_Animation_Fragment - Fatal编程技术网

Android 具有多个动画片段的活动

Android 具有多个动画片段的活动,android,animation,fragment,Android,Animation,Fragment,我目前有一个活动包含一个片段,在运行时将其注入线性布局 在我的活动布局中,我有一个名为nextButton的按钮视图。当我单击此按钮时,我希望活动切换到下一个片段,但也要设置动画,其中当前片段从屏幕向左移动,新片段从右侧进入。好像新片段正在将当前片段推开 下面是我想要的一个演示 我是否应该将所有片段存储在ArrayList中,并在单击nextButton时将当前索引+1插入LinearLayout?最好的方法是什么?您只需要查看页面 您需要在下一个按钮中选择Page with,此处true用于

我目前有一个活动包含一个
片段
,在运行时将其注入
线性布局

在我的
活动
布局中,我有一个名为
nextButton
按钮
视图。当我单击此按钮时,我希望
活动
切换到下一个
片段
,但也要设置动画,其中当前片段从屏幕向左移动,新片段从右侧进入。好像新片段正在将当前片段推开

下面是我想要的一个演示


我是否应该将所有片段存储在
ArrayList
中,并在单击
nextButton
时将当前索引+1插入
LinearLayout
?最好的方法是什么?

您只需要查看页面

您需要在下一个按钮中选择Page with,此处true用于平滑滚动动画

pager.setCurrentItem( num,true )

您需要创建4个动画,用于输入(左侧和右侧)和退出片段的动画(左侧和右侧)

每次从
FragmentTransaction
替换片段时,都需要设置
setCustomAnimations

示例:

FragmentTransaction transaction = activity.getSupportFragmentManager().beginTransaction();
    transaction.setCustomAnimations(inL, inR, outL, outR);
    transaction.replace(layout, fragment, tag);
    transaction.commit();

其中,
inL
inR
正在进入动画,而
outL
outR
正在退出动画,解决了问题的较简单部分。其中更困难的一面是检测当前显示的片段以及该转换到哪个片段。@Subby要检测当前片段,您只需检查标记,正如您每次替换片段时看到的那样,您在其上放置了一个标记“该转换到哪个片段”,这取决于您收集的片段