RV基础使用之前好想写了 这里简单记录下 使用RecycleView + GridLayoutManager 实现网格布局.
先来张效果图:
仿抖音个人页.jpg
整体布局结构:
-CoordinatorLayout
-CollapsingToolbarLayout
-ViewPager
可折叠,就那么个意思 自己看着实现. 主要记录下底部实现.
创建布局管理
GridLayoutManager manager = new GridLayoutManager(getActivity(), 3);
mRecyclerView.setLayoutManager(manager);
mRecyclerView.addItemDecoration(new GridSpacingItemDecoration(3, 10, false));
mRecyclerView.setHasFixedSize(true);
ps:
当我们确定Item的改变不会影响RecyclerView的宽高的时候可以设置setHasFixedSize(true)
并通过Adapter的增删改插方法去刷新RecyclerView,而不是通过notifyDataSetChanged()。
(其实可以直接设置为true,当需要改变宽高的时候就用notifyDataSetChanged()去整体刷新一下)
初始化
// 初始化
mReadIndexAdapter = new ReadIndexAdapter(null); mReadIndexAdapter.openLoadAnimation(BaseQuickAdapter.ALPHAIN);
getView().getRecyclerView().setAdapter(mReadIndexAdapter);
//加载更多
mReadIndexAdapter.setOnLoadMoreListener(this, getView().getRecyclerView());
// 下拉刷新
getView().getSwipeRefresh().setOnRefreshListener(this);
//点击事件
mReadIndexAdapter.setOnItemClickListener(this);
适配代码 动态设置了大小
ViewGroup.LayoutParams para = imageView.getLayoutParams();
para.width = p.x / 3;
para.height = p.x / 3;
imageView.setLayoutParams(para);
详细见DEMO 写的不好 多担待!
网友评论