当前位置: 首页 > 知识库问答 >
问题:

ViewPager中的动画问题

党浩阔
2023-03-14

我想要ViewPager中我的按钮的动画。这意味着,如果我从第1页滑动到第2页,“下一步”按钮是收缩的,第二个按钮在它旁边移动。

到目前为止还不错。如果我现在快速滑动动画会卡住,它不再可见或只有一半可见。但是按钮仍然是可点击的。

    @Override
    public void onPageSelected(int position) {

        addDotsIndicator(position);

        switch (position){
            case 0:
                TransitionManager.beginDelayedTransition(transitionContainer, new AutoTransition());
                btnSave.setVisibility(View.GONE);
                break;

            case 8:
                TransitionManager.beginDelayedTransition(transitionContainer, new AutoTransition());
                btnNext.setVisibility(View.GONE);
                break;

            default:
                TransitionManager.beginDelayedTransition(transitionContainer, new AutoTransition());
                btnSave.setVisibility(View.VISIBLE);
                btnNext.setVisibility(View.VISIBLE);
                break;
        }
    }

有谁知道如何解决这个问题?或者有没有办法做这个动画?

共有1个答案

罗伟兆
2023-03-14

我也遇到过类似的问题,我有一个ViewPager,在刷了页面之后,我无法让转换动画化(转换在其中一个页面上,由按钮点击触发)。过渡将跳转到最终状态。下一次动画将起作用。如果我再刷一次ViewPager,动画下次就不起作用了。

在检查<code>beginDelayedTransition</code>中的代码后,我注意到需要布局视图才能运行动画。

将转换代码放在 { } root.post 中对我来说可以解决问题。是约束布局。

fun ConstraintLayout.animateChanges(addChanges: (ConstraintSet) -> Unit) {
    if (ViewCompat.isLaidOut(this)) {
        animateChangesNow(addChanges)
    }
    else {
        requestLayout()
        post { animateChangesNow(addChanges) }
    }
}

private fun ConstraintLayout.animateChangesNow(addChanges: (ConstraintSet) -> Unit) {
    val constraintSet = ConstraintSet()
    constraintSet.clone(this)
    addChanges(constraintSet)
    TransitionManager.beginDelayedTransition(this)
    constraintSet.applyTo(this)
}
 类似资料:
  • 本文向大家介绍Android CardView+ViewPager实现ViewPager翻页动画的方法,包括了Android CardView+ViewPager实现ViewPager翻页动画的方法的使用技巧和注意事项,需要的朋友参考一下 Viewpager通俗一点讲就是一个允许左右翻转带数据的页面的布局管理器,经常用来连接Fragment,它很方便管理每个页面的生命周期,使用ViewPager管

  • 我已经尝试了一段时间,但我不能旋转片段视图,这是在一个视页。单击是在ViewPager的父片段的视图上。我一直得到空指针异常。我已经在我得到异常的代码行上面注释了。 主片段

  • 本文向大家介绍Android ViewPager动态加载问题,包括了Android ViewPager动态加载问题的使用技巧和注意事项,需要的朋友参考一下 今天做项目时,纠结了很久,动态添加view,刚开始按照其他的adapter处理,但是不会刷新view,来回翻几页,还会view覆盖,最后手动调用adapter的destroyItem和instantiateItem方法,还是不行,最后重写not

  • 我有一个垂直的viewpager在一个水平的viewpager。在horzontal viewpager I的第二个片段中,添加了垂直viewpager。垂直viewpager包含有图像的片段,所以当片段对用户可见时,我必须开始动画图像,因为使用了setUserVisibleHint。但是当移动到水平viewpager的第二个片段时,不会调用垂直viewpager内部片段的setUserVisib

  • 我正在尝试用anime.js动画一个SVG图标。 下面是我的代码: null null 当动画工作加载-一切都是完美的。但当我点击“重启”按钮时,有两个问题: 1)图标的箭头部分必须在行和填充动画完成后才开始动画,但它与行/填充动画一起在动画开始时开始; 2)当填充动画完成时,箭头向顶部移动,我不知道该怎么修复它 所有的帮助将非常感谢!谢谢!

  • 本文向大家介绍Android实现千变万化的ViewPager切换动画,包括了Android实现千变万化的ViewPager切换动画的使用技巧和注意事项,需要的朋友参考一下 之前写过一篇文章:Android自定义ViewPager实现个性化的图片切换效果,有朋友提出,ViewPager自带了一个setPageTransformer用于设置切换动画~ 本篇文章,将进行以下内容学习: 1、介绍如何使用s