In Android Application some cases we have to show List with alternate colors
To achieve this we have used following small snippet, and full Sourcecode is available in Github
Recyclerview_alternate_rows
//add following code in onBindViewHolder
if(position %2 == 1)
{
holder.lyt_content_view.setBackgroundColor(Color.WHITE);
}
else
{
holder.lyt_content_view.setBackgroundColor(Color.GRAY);
}
add Following snippet in Adapter on Bind for reference i have added Adapter class Following
public class PropertyListAdapter extends RecyclerView.Adapter<PropertyListAdapter.RcvViewHolder> {
private List<PropertyModel> propertyModelList = new ArrayList<>();
private Context mContext;
private RecyclerView rcvPro;
int Previusposition = 0;
public PropertyListAdapter(List<PropertyModel> propertyModelList, Context mContext, RecyclerView rcvPro) {
this.propertyModelList = propertyModelList;
this.mContext = mContext;
this.rcvPro = rcvPro;
}
@NonNull
@Override
public RcvViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.rcv_pro_row, null);
return new RcvViewHolder(v);
}
@SuppressLint("ResourceAsColor")
@Override
public void onBindViewHolder(@NonNull RcvViewHolder holder, int position) {
Picasso.with(mContext).load(propertyModelList.get(position).getPro_image()).transform(new CommonUtl.CircleTransform()).into(holder.img_pr);
holder.txt_name.setText(propertyModelList.get(position).getPro_name());
holder.txt_ads.setText(propertyModelList.get(position).getPro_adrs());
if (Previusposition == 0) {
AnimationUtil.animate(holder, true);
} else if (position > Previusposition) {
AnimationUtil.animate(holder, true);
} else {
AnimationUtil.animate(holder, false);
}
Previusposition = position;
if(position %2 == 1)
{
holder.lyt_content_view.setBackgroundColor(Color.WHITE);
}
else
{
holder.lyt_content_view.setBackgroundColor(Color.GRAY);
}
}
public void setFadeAnimation(View view) {
AlphaAnimation anim = new AlphaAnimation(0.0f, 1.0f);
anim.setDuration(1000);
view.startAnimation(anim);
}
@Override
public int getItemCount() {
if (propertyModelList.size() > 0)
return propertyModelList.size();
else
return 0;
}
class RcvViewHolder extends RecyclerView.ViewHolder {
ImageView img_pr;
TextView txt_name, txt_ads;
LinearLayout lyt_content_view;
public RcvViewHolder(View itemView) {
super(itemView);
img_pr = itemView.findViewById(R.id.img_pro);
txt_name = itemView.findViewById(R.id.pro_name);
txt_ads = itemView.findViewById(R.id.pro_ads);
lyt_content_view= itemView.findViewById(R.id.lyt_content_view);
}
}
}
Full source code is available ins Github Source_code
0 comments:
Post a Comment