我和Carousel有MotionLayout。我想运行一些代码,当用户滑动并移动到下一张幻灯片时。
为了简单起见,我有三张幻灯片,幻灯片1,幻灯片2,SLIDE3。我需要运行一些代码(更改其他UI元素,创建一个toast,...)当当前项发生更改时。这个是可能的吗?
我尝试了以下几点:
((MotionLayout)v).setTransitionListener(new MotionLayout.TransitionListener() {
@Override
public void onTransitionStarted(MotionLayout motionLayout, int i, int i1) {}
@Override
public void onTransitionChange(MotionLayout motionLayout, int i, int i1, float v) {}
@Override
public void onTransitionCompleted(MotionLayout motionLayout, int i) {}
@Override
public void onTransitionTrigger(MotionLayout motionLayout, int i, boolean b, float v) {}
});但在onTransitionCompleted中,我只能找到当前的过渡(如果用户向前或向后滑动,而不是当前项)。
完整的代码不是必须的,我用的是official experiments repo的第一个例子。谢谢你的帮助。
发布于 2021-03-05 06:10:56
OnTransitionCompleted将当前状态/约束集作为参数传递。不知道你在问什么
void onTransitionCompleted(MotionLayout motionLayout, int currentId);
https://stackoverflow.com/questions/66477747
复制相似问题