android横向瀑布流布局,ReCyclerView实现瀑布流布局
一.导入ReCyclerView包到项目
打开工程目录
添加compile'com.android.support:recyclerview-v7:25.0.1'
0
添加
二.创建实体类
3.创建适配器
1.继承于RecyclerView.Adapterpublic class FruitAdapter extends RecyclerView.Adapter
2.创建静态内部类ViewHolder extends RecyclerView.ViewHolderstatic classViewHolderextendsRecyclerView.ViewHolder
3.重写onCreateViewHolder方法(设置事件监听)@Override
public ViewHolder onCreateViewHolder(ViewGroup parent,intviewType)
4.重写onBindViewHolder方法@Override
public void onBindViewHolder(ViewHolder holder,intposition)
5.重写getItemCount()方法@Override
public int getItemCount()
完整代码package com.example.hp.c3title;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.support.v7.widget.StaggeredGridLayoutManager;import com.example.hp.c3title.Fruit;import java.util.ArrayList;import java.util.List;import java.util.Random;public class MainActivity extends AppCompatActivity { private ListfruitList = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initFruits();
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
StaggeredGridLayoutManager layoutManager = new
StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
FruitAdapter adapter = new FruitAdapter(fruitList);
recyclerView.setAdapter(adapter);
}private void initFruits() {
for (int i = 0; i < 2; i++) {
Fruit apple = new Fruit(getRandomLengthName("Apple"), R.drawable.apple_pic);
fruitList.add(apple);
Fruit banana = new Fruit(getRandomLengthName("Banana"), R.drawable.banana_pic);
fruitList.add(banana);
Fruit orange = new Fruit(getRandomLengthName("Orange"), R.drawable.orange_pic);
fruitList.add(orange);
Fruit watermelon = new Fruit(getRandomLengthName("Watermelon"), R.drawable.watermelon_pic);
fruitList.add(watermelon);
Fruit pear = new Fruit(getRandomLengthName("Pear"), R.drawable.pear_pic);
fruitList.add(pear);
Fruit grape = new Fruit(getRandomLengthName("Grape"), R.drawable.grape_pic);
fruitList.add(grape);
Fruit pineapple = new Fruit(getRandomLengthName("Pineapple"), R.drawable.pineapple_pic);
fruitList.add(pineapple);
Fruit strawberry = new Fruit(getRandomLengthName("Strawberry"), R.drawable.strawberry_pic);
fruitList.add(strawberry);
Fruit cherry = new Fruit(getRandomLengthName("Cherry"), R.drawable.cherry_pic);
fruitList.add(cherry);
Fruit mango = new Fruit(getRandomLengthName("Mango"), R.drawable.mango_pic);
fruitList.add(mango);
}}private String getRandomLengthName(String name) {
Random random = new Random();
int length = random.nextInt(20) + 1;
StringBuilder builder = new StringBuilder();
for (int i = 0; i < length; i++) {builder.append(name);
}return builder.toString();
}}
三.MianActivity中实例化
1.实例化RecyclerViewRecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
2.创建并设置布局管理器
(可用其他布局 StaggeredGridLayoutManager为瀑布流)
参数3为创建3列的瀑布流,StaggeredGridLayoutManager layoutManager =new
StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
3.创建并设置适配器FruitAdapter adapter =newFruitAdapter(fruitList);
recyclerView.setAdapter(adapter);
完整代码package com.example.recyclerviewtest;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.support.v7.widget.StaggeredGridLayoutManager;import java.util.ArrayList;import java.util.List;import java.util.Random;public class MainActivity extends AppCompatActivity { private ListfruitList = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initFruits();
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
StaggeredGridLayoutManager layoutManager = new
StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
FruitAdapter adapter = new FruitAdapter(fruitList);
recyclerView.setAdapter(adapter);
}private void initFruits() {
for (int i = 0; i < 2; i++) {
Fruit apple = new Fruit(getRandomLengthName("Apple"), R.drawable.apple_pic);
fruitList.add(apple);
Fruit banana = new Fruit(getRandomLengthName("Banana"), R.drawable.banana_pic);
fruitList.add(banana);
Fruit orange = new Fruit(getRandomLengthName("Orange"), R.drawable.orange_pic);
fruitList.add(orange);
Fruit watermelon = new Fruit(getRandomLengthName("Watermelon"), R.drawable.watermelon_pic);
fruitList.add(watermelon);
Fruit pear = new Fruit(getRandomLengthName("Pear"), R.drawable.pear_pic);
fruitList.add(pear);
Fruit grape = new Fruit(getRandomLengthName("Grape"), R.drawable.grape_pic);
fruitList.add(grape);
Fruit pineapple = new Fruit(getRandomLengthName("Pineapple"), R.drawable.pineapple_pic);
fruitList.add(pineapple);
Fruit strawberry = new Fruit(getRandomLengthName("Strawberry"), R.drawable.strawberry_pic);
fruitList.add(strawberry);
Fruit cherry = new Fruit(getRandomLengthName("Cherry"), R.drawable.cherry_pic);
fruitList.add(cherry);Fruit mango = new Fruit(getRandomLengthName("Mango"), R.drawable.mango_pic);
fruitList.add(mango);
}}
private String getRandomLengthName(String name) {
Random random = new Random();
int length = random.nextInt(20) + 1;StringBuilder builder = new StringBuilder();
for (int i = 0; i < length; i++) {
builder.append(name);
}return builder.toString();
}}
android横向瀑布流布局,ReCyclerView实现瀑布流布局相关推荐
- Android横向滚动卡片,RecyclerView+CardView实现横向卡片式滑动效果
现在来介绍两种控件recyclerview和cardview,并通过实例将它们结合在一起实现一种横向卡片式滑动效果. 1.recyclerview recyvlerview是android sdk 新 ...
- android横向滚轮特效,RecyclerView实现横向滚动效果
本文实例为大家分享了RecyclerView实现横向滚动效果的具体代码,供大家参考,具体内容如下 布局文件 xmlns:android="http://schemas.android.com ...
- Android RecyclerView实现瀑布流,图片自适应高度,不闪烁,解决位置交换
记录一下以前自己代码中用到过代码效果,也做个备份,省的以后代码找不到,大家也可以参考参考,也许看过网上某些笔记,但是不记得了链接了,有问题可以联系本人 以下会写从布局到java代码以及用到的工具类都写 ...
- android 水平方向瀑布流,Android RecyclerView(瀑布流)水平/垂直方向分割线
Android RecyclerView(瀑布流)水平/垂直方向分割线 Android RecyclerView不像过去的ListView那样随意的设置水平方向的分割线,如果要实现Recycle ...
- Android RecyclerView 实现瀑布流
Android RecyclerView 使用大全 - 基础使用,item 动画,下拉刷新等 瀑布流也是个常用的显示控件了,但是在使用时经常遇到一些问题,比如滑动回顶部后出现空隙.item在滑动时乱跳 ...
- android开发图片自适应高度,recyclerview实现瀑布流图片自适应高度
recyclerview实现瀑布流图片自适应高度 recyclerview实现瀑布流图片自适应高度 1::Recyclerview配置适配器 StaggeredGridLayoutManager gr ...
- SwipeRefreshLayout+CardView+RecyclerView 精美瀑布流效果
博主声明: 转载请在开头附加本文链接及作者信息,并标记为转载.本文由博主 威威喵 原创,请多支持与指教. 本文首发于此 博主:威威喵 | 博客主页:https://blog.csdn.net/ ...
- 友盟登陆传值+OkHttp+recyclerview展示瀑布流+跳转Intent传值+属性动画
友盟详情见 https://blog.csdn.net/aijaijgnaw/article/details/84203936 分包 友盟第三方登录 MyApp(Application) packag ...
- RecyclerView实现瀑布流,图片自适应高度
话不多说,先上效果图 对于RecyclerView,相信大家都不陌生了,这个集listView,GridView,瀑布流效果与一身强大控件,渐渐地渗透在每个App.... 还是回到正题,如何让Recy ...
最新文章
- 【linux】Valgrind工具集详解(六):使用Valgrind gdbserver和GDB调试程序
- vue入门总结(3)
- Boost:额外的bimap的测试程序
- 函数的梯度方向和切线方向_高数下微课:11.3_6 二元函数的全微分求积例题
- CodeForces - 1358D The Best Vacation(前缀和+尺取)
- 人工智能实验评价指标_电子科大人工智能团队最新研究成果,5秒诊断癌症
- Spring Cloud源码分析(一)Eureka
- 在一个C程序中,main()函数可以放在哪?
- ADF12C viewScope,pageFlowScope,requestScope,backingBeanScope
- 彻夜怒肝!SpringBoot+Sentinel+Nacos高并发已撸完,快要裂开了!
- 用友政务知识管理平台_云创数字政务大数据平台,助力政务工作高效管理
- php怎么设置div圆角,不用图片的DIV圆角(兼容各浏览器)
- hp laserjet p1108打印机连接win10电脑
- alg 停用sip_为什么使用3CX要关闭SIP ALG
- 尚硅谷的 ediary 笔记_【华硕灵耀X纵横(i71165G7/16GB/512GB/集显)评测】助力笔记本创新!英特尔Evo平台制定十大体验目标...
- 数据结构与算法Python版-第六周作业
- 二进制文件转文本工具
- 关于移动H3_2s光猫获得超级密码的步骤以及上传本地配置文件覆盖光猫的配置文件的方法
- CAD随机多面体3D 多面体骨料 凸多面体颗粒
- 转贴:ubuntu 7.10 常用软件与编程环境搭建
热门文章
- springboot使用redis实现消息队列功能,redis使用list和stream实现消息队列功能,redis实现消息队列的风险点分析
- PSO | 基础概念+两个简单的案例
- 04_《计算机安全原理与实践》密码编码工具(下)
- 重庆为什么那么火?揭秘重庆宣传方式
- Lua热更新学习 lua与C#的互相调用
- [vivo]2020届春招在线编程考试
- 减法(minus)的研究
- Kinect Kitchen(Kamp;K)期待你的到…
- [Android]Kali for Galaxy S4
- Win10快速搭建Tensorflow(CPU/GPU)