目前,我正在尝试像RecyclerView
behaivior 一样实现Google Inbox ,并且我对电子邮件打开动画非常好奇。
我的问题是:该怎么做?我的意思是,他们使用了哪种方法?他们是否使用ItemAnimator.dispatchChangeStarting()
并更改了填充父母的高度?还是其他?如果这样做的话,他们如何通过拉动手势使其闭合,而底层RecyclerView
元素则稍微可见。
谁能帮助我指向一些库或代码段/示例?
您的意思是:将recyclerview作为一个加载项,或者一次加载一个项并按一下加载下一个屏幕。
我举了一个例子,说明如何在recyclerview中收费,并给出动画
public class CreateAnimationView {
private static int contador;
Integer colorFrom = R.color.myAccentColor;
Integer colorTo = Color.RED;
public static AnimatorSet createAnimation(View view) {
ObjectAnimator fadeOut = ObjectAnimator.ofFloat(view, "alpha",
0f);
fadeOut.setDuration(300);
ObjectAnimator mover = ObjectAnimator.ofFloat(view,
"translationX", -500f, 0f);
mover.setDuration(400);
ObjectAnimator fadeIn = ObjectAnimator.ofFloat(view, "alpha",
0f, 1f);
fadeIn.setDuration(300);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.play(mover);
animatorSet.start();
return animatorSet;
}
... more animations methods.
}
在您的RecyclerViewAdapter中:
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
GruposCardView gruposCardView = gruposCardViews.get(position);
CreateAnimationView.createAnimationRandom(viewHolder.cardView);
...}
如果不在recyclerview中,则可以传递布局并使用此动画或从中创建一个动画。
public static AnimatorSet createAnimationCollapseXY(View view) {
ObjectAnimator scaleXOut = ObjectAnimator.ofFloat(view, "scaleX", 1f, 0f).setDuration(400);
ObjectAnimator scaleXIn = ObjectAnimator.ofFloat(view, "scaleX", 0f, 1f).setDuration(300);
ObjectAnimator scaleYOut = ObjectAnimator.ofFloat(view, "scaleY", 1f, 0f).setDuration(400);
ObjectAnimator scaleYIn = ObjectAnimator.ofFloat(view, "scaleY", 0f, 1f).setDuration(300);
ObjectAnimator rotateClockWise = ObjectAnimator.ofFloat(view, "rotation", 0f, 360f).setDuration(400);
ObjectAnimator rotateCounterClockWise = ObjectAnimator.ofFloat(view, "rotation", 0f, -360f).setDuration(400);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playTogether(scaleXIn, scaleYIn);
//animatorSet.setStartDelay(1200);
animatorSet.start();
return animatorSet;
}
如果我在recyclerview中展开任何项目,它都会很好地展开,但当我向下滚动recyclerview时,我发现其他项目也会展开,由于回收,它采用了展开的大小,而不是原始大小 那么我该如何解决这个问题,是否有更好的方法来展开和折叠项目呢?
--lesson.java --list_item.xml
我想使用swipe手势(即gmail应用程序)实现recyclerview项目之间的导航。这样,用户就不必返回列表,只需单击下一个项目就可以获得其详细信息视图。我找不到如何实现这一点的教程。
视图将被重新创建,使过渡变得非常奇怪,因为它在下一个项目移动的同时会在该项目的上方褪色。出现的新视图没有调整大小,它已处于完整大小。 重新创建视图时,旧视图淡出,新视图淡出,这会使视图背景颜色闪烁。 我还尝试在动画期间在item视图上设置,但这种方法的问题是RecycleView的布局会立即更新,并且不会跟随动画。 我已经为这两次尝试创建了一个小的演示项目。项目的来源在这里。
我有以下代码来设置RecyclerView项目的动画。这工作得很好,但如果我向下滚动,它会为所有出现的项目设置动画。 我想要的是类似于Google Play音乐应用程序中的行为,其中动画仅为最初可见的项目播放。通过滚动变得可见的项目应该出现在没有动画适配器的情况下。知道如何存档这种行为吗?
我在中有显示类别列表的片段,我想在用户单击类别项目时添加一个选项,应该开始一个新活动()其中包含一个显示文章列表的片段。 问题是,当我使用打开活动的方法Intent时,我会出现多个错误。 这是我的MainActivity2: 这是我把我的重定向: 这是我的日志: