基于android_support_v7_widgeet_RecyclerView的瀑布流效果
package com.terton.android.culture.subscription; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.koushikdutta.urlimageviewhelper.UrlImageViewHelper; import com.terton.android.culture.R; import com.terton.android.culture.modal.Article; import java.util.ArrayList; import java.util.List; public class Dynamic2Adapter extends RecyclerView.Adapter<Dynamic2Adapter.ViewHolder> implements View.OnClickListener { private LayoutInflater layoutInflater; private List<Article> _items; public Dynamic2Adapter(Context context) { this(context, null); } public Dynamic2Adapter(Context context, List<Article> items) { layoutInflater = LayoutInflater.from(context); _items = items; if (_items == null) { _items = new ArrayList<Article>(); } } public List<Article> getItems() { if (_items == null) { _items = new ArrayList<Article>(); } return _items; } public void setItems(List<Article> items) { this._items = items; } @Override public Dynamic2Adapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { View view = layoutInflater.from(viewGroup.getContext()).inflate(R.layout.row_dynamic, viewGroup, false); ViewHolder vh = new ViewHolder(view); view.setOnClickListener(this); return vh; } @Override public void onBindViewHolder(Dynamic2Adapter.ViewHolder holder, int position) { Article article = (Article) getItem(position); if (article != null) { holder.itemView.setTag(article); String picUrl = article.getPicUrl(); if (picUrl != null) { UrlImageViewHelper.setUrlDrawable(holder.dynamic_image, picUrl); holder.dynamic_pic.setVisibility(View.VISIBLE); } else { holder.dynamic_pic.setVisibility(View.GONE); } holder.dynamic_title.setText(article.getTitle()); } } @Override public int getItemCount() { return getItems().size(); } public Object getItem(int position) { if (position < getItemCount()) { return getItems().get(position); } return null; } @Override public void onClick(View v) { if (null != mOnItemClickListener) { mOnItemClickListener.onClick(v, (Article) v.getTag()); } } public static class ViewHolder extends RecyclerView.ViewHolder { ImageView dynamic_image; TextView dynamic_title; ImageView dynamic_favorite; RelativeLayout dynamic_pic; public ViewHolder(View itemView) { super(itemView); dynamic_image = (ImageView) itemView.findViewById(R.id.dynamic_image); dynamic_title = (TextView) itemView.findViewById(R.id.dynamic_title); dynamic_favorite = (ImageView) itemView.findViewById(R.id.dynamic_favorite); dynamic_pic = (RelativeLayout) itemView.findViewById(R.id.dynamic_pic); } } private OnRecyclerViewItemClickListener mOnItemClickListener = null; public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) { this.mOnItemClickListener = listener; } public static interface OnRecyclerViewItemClickListener { void onClick(View view, Article doc); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。