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;如果救援行动中能够精准定位施救人员的…

链接服务器 因为它不存在或者您没有所需的权限。处理

有时候&#xff0c;我们会用 Set Identity_Insert Table ON 来处理数据表的某些自增列。如果在本地倒是没什么问题。如果是远程服务器&#xff0c;则会报 找不到对象"XXX" ,因为它不存在或者您没有所需的权限 其实这个跟你的权限无关&#xff0c;即使你链接服务器用…

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

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

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

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

HP Unix vsftp服务配置

HP Unix vsftp 服务配置&#xff1a; /opt/ssh/utils/ssh_chroot_setup.sh 运行脚本&#xff0c;会提示输入要建立的vsftp账号和要限制的家目录&#xff0c; 比如要限制的家目录为/JiaRoot/&#xff0c;则/etc/passwd 里面相应的vsftp账号家目录 /JiaRoot/./&#xff1b; 配置免…

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

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

Network Request Failed

在react native项目中&#xff0c;有时候调用接口会出现这样的错误提示&#xff1a;“Network Request Failed”。 一.模拟器上报“Network Request Failed”解决办法&#xff0c;也是官网有提到的&#xff1a; 1. 在Info.plist中添加NSAppTransportSecurity类型Dictionary。 2…

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

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

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

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

Ubuntu 16.04 安装 Matlab2016a

在参考之前网上的一些ubuntu安装Matlab教程后,笔者在自己的笔记本上也尝试安装最新的matlab2016a。但是装了不同的教程都会出现报错,启动画面停止,弹出错误提示: Matlab has encountered an internal problem and needs to be close 笔者完全按照下面的教程安装, linux(x…

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头显不断…

初学SpringBoot之三

原教程如是http://blog.csdn.net/lxhjh/article/details/51753852。 记录问题&#xff1a; 1.maven工程导入后&#xff0c;pom.xml文件报错&#xff1a;“failed to read artifact descriptor for org.springframework.boot:.......”。 解决办法&#xff1a;关闭eclipse;删除r…

解决Matlab script脚本文件显示中文乱码的问题

新安装的Matlab由于默认设置可能会导致显示中文乱码的问题,这是由于Matlab 文档编辑器(editor) 的编码导致的,一般默认编码方式为ANSI,为了显示中文,应改为UTF-8方式或其他支持中文的编码方式,这在Matlab中的操作为: slCharacterEncoding(UTF-8) 但是执行这句命令只对…

stm32f103移植到f0_STM32F042替换STM32F103

因为从事汽车CAN总线及多媒体解码盒&#xff0c;常常需要解一些简单的CAN数据&#xff0c;需要的硬件IO不多&#xff0c;仅仅是CANUART&#xff0c;所以最近为了节省成本&#xff0c;也是花了不少心思。直到最近发现了STM32F042&#xff0c;据介绍&#xff0c;这是带CAN的最小封…

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

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

windows 安装 python3

安装python------------------------------------------------------------ 1,打开连接https://www.python.org/downloads/release/python-361/2,下载安装3,安装之后&#xff0c; (安装目录)4, 把python的安装目录&#xff0c;加入到系统环境变量里面去&#xff0c; 右键我的电…

用Matlab来备份文件夹

用Matlab来备份文件夹 由于各种各的原因,我们需要备份一些文件夹,例如过几天OneDrive的容量将减少,不想升级的用户必须删减内容或者备份内容。但是简单的复制文件夹会造成一些问题,例如导致历史数据丢失、少量的变动也需要复制所有数据。 为了克服这个问题,我用Matlab写…