使用RecyclerView实现双向的瀑布流
2016-12-28 14:16 阅读(232)

首先记录一下昨天的一个好消息,看下图


说明:历时不满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'



作者:code小生