android开发(3):列表listview的实现 | 下拉刷新
APP里面的列表太常用了,系统提供的listview或grideview可以做到。另外,我希望这个列表能够下拉时触发刷新,于是考虑使用封装了这个功能的开源项目,这里介绍这个:
https://github.com/Yalantis/Phoenix
这是一个支持下拉刷新的控件,里面包括了ListView。
(1)引入下拉刷新库
同样,先引入这个库,在app/build.gradle的dependencies中增加一行:
implementation 'com.yalantis:phoenix:1.2.3'
(2)xml中设计下拉刷新控件
然后在界面中使用这个控件,比如“知音”这个APP是在Fragment中使用,部分xml是这样的:

对于它的使用,你也可以参考它在github上的说明。
(3)代码中使用下拉刷新控件
在代码中,处理触发刷新的事件:

至此,界面就出现了一个能够下拉刷新的控件。但是,数据(包括刷新出来的数据)最终要在ListView上显示出来,所以,下一步就是使用ListView。
(4)使用ListView来显示内容
跟iOS的tableview一样,ListView也是由一个个cell(item)组成的,需要设计这个cell怎么显示,于是,可以写一个xml,比如叫tianya_listcell.xml:



这个xml是cell显示的样式,除了样式,还要有内容。ListView从适配器取内容,所以要写一个适配器类来提供内容(重写某个方法)。
先定义一个内容类,这里简单演示,只设置一个图片。定义的类是这样的:

最终要使用这个内容类,生成一个list,再设置给listview的适配器。
然后,写listview的适配器,由它提供绘制内容:


最后,使用listview:

总体的思路是,listview向adapter询问绘制多少个item(所以要给adapter设置好数据列表),再问adapter索要绘制的view(这个view从xml中生成,就是一个item),我们可以重写这个getView的方法,从而控制显示什么样的item(xml定义了布局,除了布局,还要设置具体的显示内容,就在这个函数里面设置)。
演示的效果是这样的:

android开发(3):列表listview的实现 | 下拉刷新的更多相关文章
- ListView封装实现下拉刷新和上拉加载(方式2)(转载)
转自:http://blog.csdn.net/jdfkldjlkjdl/article/details/70229465 这次使用的是系统的SwipeRefreshLayout实现下拉刷新,和设置L ...
- 【Android - 自定义View】之自定义可下拉刷新或上拉加载的ListView
首先来介绍一下这个自定义View: (1)这个自定义View的名称叫做 RefreshableListView ,继承自ListView类: (2)在这个自定义View中,用户可以设置是否支持下拉刷新 ...
- react-native ListView 封装 实现 下拉刷新/上拉加载更多
1.PageListView 组件封装 src/components/PageListView/index.js /** * 上拉刷新/下拉加载更多 组件 */ import React, { Com ...
- android新闻项目、饮食助手、下拉刷新、自定义View进度条、ReactNative阅读器等源码
Android精选源码 Android仿照36Kr官方新闻项目课程源码 一个优雅美观的下拉刷新布局,众多样式可选 安卓版本的VegaScroll滚动布局 android物流详情的弹框 健身饮食记录助手 ...
- Android开发 - 下拉刷新和分段头悬停列表
项目源码 本文所述项目已开源,源码地址 为什么做PullToRefresh-PinnedSection-ListView 前段时间因为项目需求,需要在Android中对ListView同时增加下拉刷新 ...
- Android 它们的定义ListView实现底部和页下拉刷新刷新的顶
在项目开发.由于数据量过大,寻呼需要加载或下拉刷新.为了缓解长期等待-time负载.这个博客的评论中被自己的定义实例ListView实现底部的下拉刷新页面正在加载结果和顶部. 其效果图: 一.List ...
- 【转载】Android中ListView下拉刷新的实现
在网上看到一个下拉刷新的例子,很的很棒,转载和更多的人分享学习 原文:http://blog.csdn.net/loongggdroid/article/details/9385535 ListVie ...
- Android中ListView下拉刷新的实现
ListView中的下拉刷新是非常常见的,也是经常使用的,看到有很多同学想要,那我就整理一下,供大家参考.那我就不解释,直接上代码了. 这里需要自己重写一下ListView,重写代码如下: packa ...
- Android 自定义ListView实现底部分页刷新与顶部下拉刷新,androidlistview
在项目开发中,由于数据过大时,需要进行分页加载或下拉刷新,来缓解一次性加载的过长等待.本篇博文实例讲解通过自定义的ListView实现底部分页加载和顶部下拉刷新的效果. 其效果图: 一.ListVie ...
随机推荐
- Linux移植之tag参数列表解析过程分析
在Linux移植之内核启动过程start_kernel函数简析中已经指出了start_kernel函数的调用层次,这篇主要是对具体的tag参数列表进行解析. 1.内存参数ATAG_MEM参数解析 2. ...
- 对于PHP面试知识点的小结
基础篇 了解大部分数组处理函数 字符串处理函数(区别 mb_ 系列函数) & 引用,结合案例分析 == 与 === 区别 isset 与 empty 区别 全部魔术函数理解 static.$t ...
- sendmail发送邮件
#echo 'hello!' | mail -s "hello test" 119733@qq.com
- Linux学习笔记:常用软件
Linux系统下常用软件(针对CentOS,其他系统类似) lrzsz 可用于上传和下载,安装 yum -y install lrzsz ,使用 上传 rz 下载 sz mysql 安装 yum -y ...
- docker 技术
利用docker打包一个sshd的服务 准备环境 安装docker 修改主机名与hosts解析 echo '10.0.0.11 docker01' 参考文档:https://m ...
- 学习Acegi应用到实际项目中(3)
此节将要了解的是AnonymousProcessingFilter.RememberMeProcessingFilter和LogoutFilter三个过滤器 1.AnonymousProcessing ...
- 2019.02.26 bzoj4311: 向量(线段树分治+凸包)
传送门 题意: 支持插入一个向量,删去某一个现有的向量,查询现有的所有向量与给出的一个向量的点积的最大值. 思路: 考虑线段树分治. 先对于每个向量处理出其有效时间放到线段树上面,然后考虑查询:对于两 ...
- Python实例浅谈之三Python与C/C++相互调用
一.问题 Python模块和C/C++的动态库间相互调用在实际的应用中会有所涉及,在此作一总结. 二.Python调用C/C++ 1.Python调用C动态链接库 Python调用C库比较简单,不经过 ...
- s11.9 sar:收集系统信息
功能说明: 通过sar命令,可以全面地获取系统的CPU.运行队列.磁盘I/O.分页(交换区).内存.CPU中断和网络等性能数据. 语法格式 sar option interval count sar ...
- PLSQL基础知识-图片
什么是PL/SQL?