android 瀑布流

最终效果图

 

 

 

1.item_demo5.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:paddingBottom="5dp"android:paddingRight="5dp"><ImageViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:scaleType="fitXY"android:id="@+id/item_demo5_image"/><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/item_demo5_tv"android:layout_margin="5dp"android:background="#ff496b"android:text="12344"/></LinearLayout>

 Demo5Adapter

public class Demo5Adapter extends RecyclerView.Adapter<Demo5Adapter.ViewHolder> {/*** 展示数据*/private ArrayList<String> mData;public Demo5Adapter(ArrayList<String> data) {this.mData = data;}public void updateData(ArrayList<String> data) {this.mData = data;notifyDataSetChanged();}@Overridepublic int getItemViewType(int position) {// 瀑布流样式外部设置spanCount为2,在这列设置两个不同的item type,以区分不同的布局return position % 2;}@Overridepublic Demo5Adapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {parent = parent;// 实例化展示的viewView v;
//        if(viewType == 1) {v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_demo5, parent, false);
//        }
//        else {
//            v = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_rv_staggered_item_two, parent, false);
//        }// 实例化viewholderViewHolder viewHolder = new ViewHolder(v);return viewHolder;}@Overridepublic void onBindViewHolder(Demo5Adapter.ViewHolder holder, int position) {
// 绑定数据holder.mTv.setText(mData.get(position));int type = position % 2;if(type == 0){holder.imageView.setBackgroundResource(R.drawable.a);}else {holder.imageView.setBackgroundResource(R.drawable.ic_launcher);}}@Overridepublic int getItemCount() {return this.mData.size();}public static class ViewHolder extends RecyclerView.ViewHolder {TextView mTv;ImageView imageView;public ViewHolder(View itemView) {super(itemView);mTv = (TextView) itemView.findViewById(R.id.item_demo5_tv);imageView = (ImageView)itemView.findViewById(R.id.item_demo5_image);}}
}

 activity_demo5.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.example.mac.mainapplication.Activity.Demo5Activity"><android.support.v7.widget.RecyclerViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:scrollbars="vertical"android:paddingLeft="5dp"android:paddingTop="5dp"android:fadeScrollbars="true"android:id="@+id/demo5_recycler_view"></android.support.v7.widget.RecyclerView></LinearLayout>

 主界面代码

public class Demo5Activity extends AppCompatActivity {private StaggeredGridLayoutManager mLayoutManager;private RecyclerView mRecyclerView;private  ArrayList<String> data = new ArrayList<>();private Demo5Adapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_demo5);mLayoutManager = new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.VERTICAL);mRecyclerView = (RecyclerView)findViewById(R.id.demo5_recycler_view);mRecyclerView.setLayoutManager(mLayoutManager);adapter = new Demo5Adapter(getData());mRecyclerView.setAdapter(adapter);}private ArrayList<String> getData() {final Random random=new Random();;String []strArr = {"差不多完美的解决了间隔线的问题,有细心的同学可能发现,在RecyclerView滑动的时候上面一直有一条灰色的间隔线,这个可以通过取消xml布局文件中RecyclerView的paddingTop属性去掉顶部灰色的间隔线。","总结","本篇文章主要介绍网格样式和瀑布流样式的RecyclerView,列表样式、网格样式和瀑布流样式在某种程度上是可以转换的。","网格样式的布局管理器的spanCount设置为1,就是列表样式","目前为止关于RecyclerView的基本使用的介绍可以告一段落了,但其实关于RecyclerView深入使用可不止着一些,比如说单个Item横滑,拖动Item之间转换位置等等,官方都有提供,当然这些使用会在后面依次介绍。","我是好人","就是水平方向的列表","如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!","竖直方向","Item是等宽,水平方向,那就是水平方向的网络样式","1","飞哥陪我过;歌撇根基稳固拼q"};for(int i = 0; i < 100; i++) {data.add(strArr[random.nextInt(strArr.length)]);}return data;}}

 

转载于:https://www.cnblogs.com/hualuoshuijia/p/7059534.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

$.ajax 加了headers报错_Springboot解决Ajax跨域的三种方式

这篇文章不华丽&#xff0c;但比较实用&#xff0c;能解决不少大家实际业务中的问题。大家可以收藏起来&#xff0c;以备用时之需&#xff01;1.同源策略 1.1 含义ajax出现请求跨域错误问题&#xff0c;主要原因就是因为浏览器的“同源策略”&#xff1b;1995年&#xff0c;同…

高精度惯性传感器如何实现全球自动化愿景?

来源&#xff1a;MEMS如果农场基于丰富的传感器内容来联合利用自动化地面车辆和航空器&#xff0c;那么地面作业将更加有效&#xff1b;如果手术室能够将经典的导引技术供精密制导机械臂使用&#xff0c;那么成功率将得到保障&#xff1b;如果救援行动中能够精准定位施救人员的…

catia怎么将特征参数化_搭建商城网站怎么将页面简洁化?这三个步骤不能少

随着用户群体的年轻化&#xff0c;消费者的习惯也会开始转变&#xff0c;简洁的风格设计能帮助商家更快的吸引到用户。制作自己的商城系统来进行产品销售是常见的方式之一&#xff0c;商家需要做好自己的网站规划&#xff0c;并向开发商提出相应的要求。那么&#xff0c;今天就…

宇宙是一个图网络?「全球最聪明的人」刚刚为物理基础理论指出了全新道路...

来源&#xff1a;机器学习研究组订阅号图片来源&#xff1a;机器之心「物理学已经很长一段时间没有出现任何显著进展了。探测引力波或许算是一个&#xff0c;」斯蒂芬沃尔夫勒姆表示。「我非常希望在纯技术层面上&#xff0c;我们所做的一切能够使理论物理学重新焕发活力。尽管…

python3字典写入excel_Python玩转Excel(第2期)~这里只有干货

第1期发布之后&#xff0c;反响特别好&#xff0c;很快通过审核&#xff0c;不到2小时推荐量2600多&#xff0c;还是挺高的&#xff0c;说明大家对此版块内容还是感兴趣的&#xff0c;激发了我创作的动力。谢谢大家&#xff0c;今天加班再更新一期。一、如何创建数据的‘’粮仓…

信息通信业(ICT)十大趋势

来源&#xff1a;中国信息通信研究院&#xff0c;原文刊载于《互联网天地》2020年2期2019年12月26日&#xff0c;中国信息通信研究院在北京发布了信息通信业&#xff08;ICT&#xff09;十大趋势。这十大趋势是&#xff1a;1、5G时代起航&#xff0c;开辟数字化转型新空间2、信…

小括号教学设计导入_2020年小学教师资格证复习资料之小学课堂教学导入-教师吧...

本节内容为2020年下半年小学教师资格证考试科目二《教育教学知识与能力》小学课堂教学导入考点详解。【考点&#xff1a;小学课堂教学导入】一、课堂教学导入概述(一)教学导入的概念所谓教学导入,是指在上课之初,教师利用几分钟的时间,运用简洁的言语或行为,将学生的注意力吸引…

RPU4+1视图(转)

41视图模型概况 Kruchten 提出了一个"41"视图模型&#xff0c;从5个不同的视角包括包括逻辑试图、进程视图、物理视图、开发视图、场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面&#xff0c;5个试图结合在一起才能反映系统的软件体系结构的全部…

牛客网数据开发题库_牛客网SQL题库NO.32~40

不要问为什么没有31题&#xff0c;大概被牛客吞掉了吧&#xff0c;哈哈哈哈SQL 32【简单】将employees表的所有员工的last_name和first_name拼接起来作为Name&#xff0c;中间以一个空格区分CREATE TABLE employees ( emp_no int(11) NOT NULL, birth_date date NOT NULL, firs…

VR/AR行业发展至今,它的市场规模如何

来源&#xff1a;AR工业应用全球知名研究咨询公司 Markets and Markets 2017 发布了一份研究报告&#xff0c;报告称&#xff1a;AR 市场规模将从 2016 年的 23.9 亿美金增长到 2023 年的613.9 亿美金。报告显示&#xff0c;诸如医疗保健、零售以及电商这样的行业对 AR头显不断…

为什么很难创造出新的处理器?

出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;译者 | Arvin&#xff0c;责编 | 郭芮以下为译文&#xff1a;RISC-V处理器指令集体系结构&#xff08;ISA&#xff09;的问世和最初的成功重新激发了人们对定制处理器设计的兴趣&#xff0c;但是业界现在正在努力解决…

情绪调节的自适应_如何做好情绪的管理者

积极有效的情绪管理一个人如果能够控制自己的情绪、欲望和恐惧&#xff0c;那他就胜过国王。----约翰米尔顿01情绪概述情绪和情感&#xff0c;人对客观外界事物的态度的主观体验和相应的行为反应&#xff0c;它反映的是主体需要和客观外界事物间的关系。情绪和情感两个词常可通…

科普 | 同一个世界,地图有这么多不同的表达!

来源&#xff1a;测绘学报一、地图投影的概念地球到底是什么样的&#xff1f;公元前6世纪&#xff0c;古希腊数学家毕达哥拉斯率先提出了“地圆说”。他在观察月食时&#xff0c;发现大地在月球上的投影是圆的&#xff0c;所以认为大地是完整的圆球体。他首次提出了“地球”这一…

解密脑机接口:专访CMU生物医学工程系主任贺斌

卡耐基梅隆大学生物医学工程系主任贺斌教授&#xff08;照片由本人提供&#xff09;来源&#xff1a; 知识分子撰文 | 李澄宇&#xff08;中科院神经所PI&#xff09;赵维杰&#xff08;NSR新闻编辑&#xff09;脑机接口能做什么&#xff1f;带上电极帽&#xff0c;你可以在实验…

Matlab画图技巧之消除空白

</pre>写报告或论文时,为了充分利用篇幅和实现紧凑美观,我们常常想要得到空白冗余较小的图,这在Tikz里面十分容易实现。但是在Matlab里需要做很多的工作才能达到目的。</p><p></p><p>Matlab默认的图空白十分大,看起来很别扭:</p><…

5G和北斗,交通行业新基建的正确打开方式

作者&#xff1a;湖南省交通运输厅科技信息中心 乔川龙物联网智库 整理发布转载请注明来源和出处导 读交通运输行业应该是5G先行区&#xff0c;一是符合5G的机会在于与2B垂直行业的深度融合、赋能行业转型升级和高质量发展的判断&#xff1b;二是根据交通运输行业的特点&#…

人工智能与人类智能的竞赛:人机对抗智能技术全梳理

作者: 黄凯奇*, 兴军亮, 张俊格, 倪晚成, 徐博来源&#xff1a;中国科学院自动化研究所智能系统与工程研究中心1引言人工智能从诞生之始就以对抗人类智能为衡量准则(著名的图灵测试) 。作为人工智能研究的前沿方向&#xff0c;人机对抗技术一直是国内外人工智能研究的热点,以人…

工业机器人 答案 韩建海_不可或缺:协作机器人对于制造业转型升级的意义

只要谈到自动化&#xff0c;就很难不提到协作机器人。自从十几年前协作机器人问世以来&#xff0c;它们便承担起了众多企业的自动化任务。新冠之前&#xff0c;英国制造业正在应对英国退欧和劳工短缺的不确定性。但是&#xff0c;他们无法预见新冠对行业的影响。任何行业都无法…

Python爬虫用Selenium抓取js生成的文件(一)

简介任务简述实现过程 简介 我最近在看关于计算机的一些书籍,发现了这个电子书清单:计算机开放电子书汇总, 和大家分享一下. 我在下载其中的书籍时被导向了这个很好的计算机电子书网站KanCloud看云,里面有非常多的实用的编程方面的电子书,很多是该网站自己用html生成的,格式多…

golang 升级到新版本_Scikit-learn新版本发布,一行代码秒升级

十三 发自 凹非寺 量子位 报道 | 公众号 QbitAIScikit-learn&#xff0c;这个强大的Python包&#xff0c;一直深受机器学习玩家青睐。而近日&#xff0c;scikit-learn 官方发布了 0.22 最终版本。此次的更新修复了许多旧版本的bug&#xff0c;同时发布了一些新功能。安装最新版…