gpt4 book ai didi

Android ViewPager CrossFade 动画

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:54:04 30 4
gpt4 key购买 nike

我为 android 实现了一个 BottomNavigation View ,我有一些 fragment 显示为 BottomNavigation 页面。根据Google Material Design Guide Lines我想显示带有淡入淡出动画的 fragment 。

通过触摸 BottomNavigation 的项目,我的 ViewpPager 会使用默认的幻灯片动画更改 fragment 。

我在 this 中阅读了一些解决方案和 this .但这些并不是真正的淡入淡出动画,我无法设置淡出持续时间。

那么有什么方法可以在更改 ViewPager 的选项卡时设置动画吗?

最佳答案

终于,我找到了答案。

我用布局更改了 ViewPager 以保留我的 fragment (框架布局)。然后我将 fragment 添加到 fragment 事务中。

通过触摸 BottomNavigation 上的项目,当前 fragment 会隐藏,新 fragment 会显示在 fragmentTransaction 中定义的淡入淡出动画。

这是我的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_page);

addFragmentsToManager();
}

private void addFragmentsToManager() {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out);

fragmentTransaction.add(R.id.flContent, tripFragment, tripFragment.getClass().getSimpleName());
fragmentTransaction.add(R.id.flContent, notificationFragment, notificationFragment.getClass().getSimpleName());
fragmentTransaction.add(R.id.flContent, searchFragment, searchFragment.getClass().getSimpleName());
fragmentTransaction.add(R.id.flContent, profileFragment, profileFragment.getClass().getSimpleName());

fragmentTransaction.hide(tripFragment);
fragmentTransaction.hide(notificationFragment);
fragmentTransaction.hide(searchFragment);
fragmentTransaction.hide(profileFragment);
fragmentTransaction.commit();
}

private void changeTab(int position) {
Fragment fragment;
switch (position) {
fragment = .....// get framgnet from position
}

FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out);

fragmentTransaction.hide(prvFragment);
fragmentTransaction.show(fragment).commit();
prvFragment = fragment;
}

关于Android ViewPager CrossFade 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39883620/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com