【发布时间】:2015-11-04 18:30:05
【问题描述】:
Android Studio 1.5
Device Samsung 4.4.2
我正在尝试对从 ArrayList 加载到回收站视图中的项目进行动画处理。当单击下拉箭头时,项目应在展开时动画(减速),在折叠时应动画。但是,目前列表项只是出现。
调用 setAnimation 的代码
@Override
public void onBindChildViewHolder(ChatChildViewHolder childViewHolder, int position, Object childListItem) {
ChatChildTitles chatChildTitles = (ChatChildTitles)childListItem;
childViewHolder.tvChildTitle.setText(chatChildTitles.getTitle());
setAnimation(childViewHolder.cvChildRooms, position);
}
设置动画的代码
private void setAnimation(CardView viewToAnimate, int position) {
Animation animation = AnimationUtils.loadAnimation(mContext, android.R.anim.fade_in);
animation.setInterpolator(mContext, android.R.anim.decelerate_interpolator);
viewToAnimate.startAnimation(animation);
}
这里有几个截图:
处于折叠状态
这是我正在使用的布局,它表示将在 recyclerView 中显示的行:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
android:id="@+id/cvChildRooms"
xmlns:card="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card:cardBackgroundColor="@color/child_header_lighter_grey"
card:contentPadding="4dp"
card:cardPreventCornerOverlap="true">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/profile_image"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical|start"
android:src="@drawable/photorace"/>
<TextView
android:id="@+id/tvChildTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center"
android:text="Coffee Latte Room"
android:fontFamily="sans-serif-light"
android:textSize="16sp"
android:textColor="@android:color/black"/>
</android.support.v7.widget.CardView>
我有一个应该启动动画的函数。
private void setAnimation(CardView viewToAnimate, int position) {
Animation animation = AnimationUtils.loadAnimation(mContext, android.R.anim.decelerate_interpolator);
viewToAnimate.startAnimation(animation);
}
我已经测试过使用slide_in_left 可以正常工作的以下内容。但是,我不希望它们从左侧滑入
Animation animation = AnimationUtils.loadAnimation(mContext, android.R.anim.slide_in_left);
viewToAnimate.startAnimation(animation);
非常感谢您的任何建议,
【问题讨论】:
-
您能具体解释一下您想要为您的物品制作什么样的动画吗?正如 Mattia Maestrini 已经指出的那样,使用插值器作为动画是没有意义的......
-
我可能有东西给你,但只能明天给你答复。如果你的问题是双重的,你能告诉我吗?您正在寻求帮助 1. 最初加载顶部 recyclerview 时,该项目必须是动画的; 2. 当您单击下拉菜单时,当 recyclerview 展开和折叠时出现的项目必须是动画的?