前言:
RecyclerView作为Android中最重要的一个系统组件,在用户界面展示时就势必要展示其最好的一面(美观、健壮、优化)。本文将通过设置Animation
来快速地达到设置各种炫酷的动画效果。
一:基本配置
首先先创建一个RecyclerView示例项目。其工程结构如图所示:
Bean.java
,BeanAdapter.java
,MainActivity.java
这三个文件分别代表RecyclerView子项的实体Bean,RecyclerView适配器,主活动。其代码如下:
Bean.java
:
public class Bean {
private int imageViewId;
private String title;
public Bean(){
}
public Bean(int imageViewId, String title){
this.imageViewId = imageViewId;
this.title = title;
}
public void setTitle(String title) {
this.title = title;
}
public void setImageViewId(int imageViewId) {
this.imageViewId = imageViewId;
}
public String getTitle() {
return title;
}
public int getImageViewId() {
return imageViewId;
}
@NonNull
@Override
public String toString() {
return super.toString();
}
}
BeanAdapter.java
:
public class BeanAdapter extends RecyclerView.Adapter <BeanAdapter.ViewHolder> {
private List<Bean> mBeanList;
private Context context;
static class ViewHolder extends RecyclerView.ViewHolder {
ImageView imageView;
TextView textView;
public ViewHolder(View view){
super(view);
imageView = (ImageView) view.findViewById(R.id.image_view);
textView = (TextView) view.findViewById(R.id.text_view);
}
}
public BeanAdapter(List<Bean> mBeanList, Context context){
this.mBeanList = mBeanList;
this.context = context;
}
@NonNull
@Override
public BeanAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_bean,parent,false);
final ViewHolder holder = new ViewHolder(view);
holder.imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = holder.getAdapterPosition();
Toast.makeText(context, "Click At: " + position, Toast.LENGTH_SHORT).show();
}
});
holder.textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = holder.getAdapterPosition();
Toast.makeText(context, "Click At: " + position, Toast.LENGTH_SHORT).show();
}
});
return holder;
}
@Override
public void onBindViewHolder(@NonNull BeanAdapter.ViewHolder holder, int position