导航抽屉动画Android

7
我是新手Android开发者。我遇到了一个关于Android导航抽屉的问题。我已经将导航抽屉包含在我的应用程序中,一切都很顺利,但我想知道是否有人可以帮助我在导航抽屉列表上实现惰性动画。

navigation drawer with animation

图片来源

谢谢。

1个回答

3
也许有更好的方法,但我偶然发现了这个方法。您可以使用RecyclerView,在onBindViewHolder方法中设置动画来实现延迟滑入效果。
下面的代码是从“如何在RecyclerView项出现时设置动画”中改编而来的。我根据位置将其改编为分阶段动画。您还需要逻辑来停止在所有可见视图的初始位置调用setAnimation方法,除非您希望它们在用户滚动时从左侧滑入。
参考链接:如何在RecyclerView项出现时设置动画(改编)
@Override
public void onBindViewHolder(ViewHolder holder, int position)
{
    holder.text.setText(items.get(position));

    // Here you apply the animation when the view is bound
    setAnimation(holder.container, position);
}

/**
 * Here is the key method to apply the animation
 */

private void setAnimation(View viewToAnimate, int position)
{
        Context context = MyApp.getActivity();
        Animation animation = AnimationUtils.loadAnimation(context, android.R.anim.slide_in_left);

        animation.setDuration(position * 50 + 200);
        viewToAnimate.startAnimation(animation);

}

过多的视图动画会变得非常卡顿。增加时间间隔可以让更多的视图离开屏幕,而早期的视图仍在进行动画。您可以尝试查找一些动画(除了默认的Android动画),这些动画可以使它们更多地留在屏幕之外(例如暂停,然后移动或加速),以便您更好地控制同时有多少视图正在屏幕上进行动画。


这个解决方案似乎有效,或者至少给了我一个起点。谢谢。 - tintin21

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接