<android.support.v7.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>
private RecyclerView rv;
StaggeredGridAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
//RecyclerView网格布局
rv = (RecyclerView) findViewById(R.id.rv);
rv.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));
adapter = new StaggeredGridAdapter(this);
//和适配器关联
rv.setAdapter(adapter);
adapter.setImgOnClick(this);
}
@Override
public void imgClick(int index) {
//瀑布流里对应的点击事件
if(index % 2 == 0){
Intent intent = new Intent(MainActivity.this,LiveActivity.class);
intent.putExtra("index","1");
startActivity(intent);
}else if(index % 2 == 1){
Intent intent = new Intent(MainActivity.this,LiveActivity.class);
intent.putExtra("index","2");
startActivity(intent);
}
}
<ImageView
android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:scaleType="centerCrop" />
public class StaggeredGridAdapter extends RecyclerView.Adapter<StaggeredGridAdapter.LinearViewHolder> {
private Context mContext;
private AdapterView.OnItemClickListener mListener;
private List<String> list = new ArrayList<>();
ImgOnClick imgOnClick;
public void setImgOnClick(ImgOnClick imgOnClick) {
this.imgOnClick = imgOnClick;
}
public StaggeredGridAdapter(Context mContext) {
this.mContext = mContext;
for (int i = 0; i < 30; i++) {
list.add(String.format("%s-%s", i / 10 + 1, i));
}
}
@Override
public StaggeredGridAdapter.LinearViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new LinearViewHolder(LayoutInflater.from(mContext).inflate(R.layout.layout_staggere_grid_item, parent, false));
}
@Override
public void onBindViewHolder(StaggeredGridAdapter.LinearViewHolder holder, final int position) {
//根据position来判断图片大小(加载的本地图片)
if (position % 2 == 0) {
holder.mImageView.setImageResource(R.drawable.z004);
} else {
holder.mImageView.setImageResource(R.drawable.z006);
}
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imgOnClick.imgClick(position);
}
});
}
@Override
public int getItemCount() {
return 30;
}
class LinearViewHolder extends RecyclerView.ViewHolder {
private ImageView mImageView;
public LinearViewHolder(View itemView) {
super(itemView);
mImageView = (ImageView) itemView.findViewById(R.id.iv);
}
}
interface ImgOnClick{
void imgClick(int index);
}
}