首先记录一下昨天的一个好消息,看下图
说明:历时不满40天时间开通了原创功能,在此期间所发文章都是原创,逢周末两天都没有发过文。今天想都没想到下午给了我开通原创通知。好开心!
进入正题:
昨天发的一篇《Android5.0竖向瀑布流RecyclerView+CardView》关于使用RecyclerView实现竖向瀑布流效果,今天给大家介绍横向的效果,并实现回调监听。
一、效果图:
说明:通过按钮监听设置布局方向,关联不同的item布局,加载不同的数据。其它的都没有啥需要说的。
二、代码
1,首页布局代码和昨天的没有区别,可以参考昨天的。
2,适配器改变的地方@Override
public ListHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = View.inflate(context, flag ? R.layout.staggered_grid_item :
R.layout.staggered_grid_item_h, null);
return new ListHolder(view, mItemClickListener);
}
说明:通过关联适配器时,传递过来的boolean值,关联不同的布局,加载不同的数据源。/**
* 创建一个回调接口
*/
public interface MyItemClickListener {
void onItemClick(View view, int position);
}
/**
* 在activity里面adapter就是调用的这个方法,将点击事件监听传递过来,并赋值给全局的监听
*
* @param myItemClickListener
*/
public void setItemClickListener(MyItemClickListener myItemClickListener) {
this.mItemClickListener = myItemClickListener;
}
说明:定义回调接口;注意,当切换了横向或者竖向布局时,由于监听对象空了导致回调监听不起作用了,单独使用是没有问题的,这里是为了演示将两种效果写在了一起。
三、引入包(昨天的忘了说了)compile 'com.android.support:recyclerview-v7:25.1.0'
compile 'com.android.support:cardview-v7:25.1.0'