android 刷卡布局,刷卡布局效果-开源AndroidSwipeLayout使用解析(二)
上一篇解析了AndroidSwipeLayout的普通用法
这一次我们来看一下它在ListView中的使用,同样我们分析官方的sample来学习如何使用
在上一篇忘了给出它的gradle配置
同样看分析布局文件
listview.xml
listview_item.xml
结果这两个布局都非常简单,所以我们就不分析了
那我们就进入代码分析环节
ListViewExample.java
mListView = (ListView) findViewById(R.id.listview);
mAdapter = new ListViewAdapter(this);
这两句进行初始化,ListView,ListViewAdapter(ListViewAdapter我们下面详细解析)
mAdapter.setMode(Attributes.Mode.Single);
这句代码是设置Adapter的模式,Attributes.Mode.Single代表只有一个拖拽打开的时候,其他的关闭,在例子apk中可以体验出
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override public void onItemClick(AdapterView> parent,
View view,
int position,
long id) {
((SwipeLayout)(mListView
.getChildAt(position-mListView
.getFirstVisiblePosition())))
.open(true);}});
设置listview的itemclick监听,当点击的时候,打开swipeLaout
mListView.setOnTouchListener(
new View.OnTouchListener() {
@Override public boolean onTouch(View v, MotionEvent event{
Log.e("ListView", "OnTouch");
System.out.println("OnTouch");
return false;
}});
设置listview的touch监听
mListView.setOnItemLongClickListener(
new AdapterView.OnItemLongClickListener() {
@Override public boolean onItemLongClick(
AdapterView> parent,
View view,
int position,
long id) {
System.out.println("OnItemLongClickListener");
return true; }});
设置ListView的OnItemLongClick的监听
mListView.setOnScrollListener(
new AbsListView.OnScrollListener() {
@Override public void onScrollStateChanged(
AbsListView view,
int scrollState) {
Log.e("ListView", "onScrollStateChanged");
System.out.println("onScrollStateChanged"); }
@Override public void onScroll(AbsListView view,
int firstVisibleItem,
int visibleItemCount,
int totalItemCount) {
System.out.println("onScroll"); }});
设置ListView的OnItemSelected监听
mListView.setOnItemSelectedListener(
new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
Log.e("ListView", "onItemSelected:" + position);
System.out.println("onItemSelected " + position); }
@Override
public void onNothingSelected(AdapterView> parent) {
Log.e("ListView", "onNothingSelected:");
System.out.println("onNothingSelected: "); }});
然后分析ListViewAdapter
~~发现ListViewAdapter继承自BaseSwipeAdapter,
BaseSwipeAdapter继承自BaseAdapter
BaseSwipeAdapter是一个抽象类,子类需要实现
getSwipeLayoutResourceId,generateView,fillValues,getCount, getItem,getItemId函数
*getCount,getItem,getItemId函数实现和BaseAdapter中一样
*getSwipeLayoutResourced需要返回一个Swipelayout的id,便于对其的处理
generateView函数用于生成一个View,和BaseAdapter的getView的用法基本一样,不同的是在这里可以不处理view的复用,因为BaseSwipeAdapter中已经封装了view的复用处理
*fillValues在这个函数中填充数据
下面看例子中的ListViewAdapter的实现
@Override
public int getSwipeLayoutResourceId(int position) { return R.id.swipe;}
返回的是ListView_item.xml中的swipelayout的id
个人感觉简书的markdown太难用了,贴代码不方便直接上图了
Paste_Image.png
Paste_Image.png
ok,listView使用AndroidSwipeLayout结束,下次分析RecyclerViewr使用它
android 刷卡布局,刷卡布局效果-开源AndroidSwipeLayout使用解析(二)相关推荐
- 关于HCE——Android手机NFC模拟刷卡成果和心得(上)
关于HCE--Android手机NFC模拟刷卡成果和心得 一.前言 在最近,开始研究了手机模拟NFC刷卡的一些内容,想是自己实现一次手机模拟刷卡. NFC大家应该都了解,这两年的安卓手机基本都是支持了 ...
- Android app性能优化解决卡慢顿之布局优化
前面博客分析了导致app卡顿慢的直接原因,这里就从原因出发,分析一些优化方案(这里主要是从直接影响渲染机制的布局相关进行分析) 1) Invalidations, Layouts, and Perfo ...
- Android 学习之《第一行代码》第二版 笔记(二十三)Material Design 实战 —— 卡片式布局
实现基础: Android 学习之<第一行代码>第二版 笔记(二十二)Material Design 实战 -- 悬浮按钮和可交互提示 卡片式布局 卡片式布局是 Materials Des ...
- android手机——刷机(卡刷、线刷)
刷机是许多android手机都要经历的一环: 卡刷 症状:刷机后可以开机但无法进入系统,一直停在加载界面 这种情况称为"半砖",还不算太糟,可用卡刷法复活,即把我们要刷的rom包放 ...
- android手机公交卡,哪些手机可以刷公交卡 支持刷公交卡手机有哪些【详细介绍】...
想要使用"手机刷公交卡乘坐公交.地铁",首先你必须拥有一部具备NFC模块的智能手机,其次公交车上要有支持闪付的刷卡器,然后再前往运营商营业厅更换一张"把公交IC卡和SIM ...
- android怎么添加地铁卡,安卓手机公交卡怎么刷
安卓手机还能刷公交?安卓手机新推出的功能可以当公交卡用?是不是很新颖?有兴趣的朋友可以来了解一下. 12月19日,三星SAMSUNG Pay终于支持的公交卡功能,首批开通城市仅限北京上海,而此前小米M ...
- android 开发刷rom,Android ROM开发(7) TF卡(金卡)自引导刷机
Andrew Huang 转载请注明作者及网址 官方的RUU对于刷机要求严格.必须使用PC通过USB在线刷机,检查也比较严格.如果想刷CID不一致的ROM,或者降版刷机.用这个方法不行. 因此如果你的 ...
- 三星s5刷机android+l,三星s5刷机教程与方法(卡刷第三方包)
三星s5的刷机教程也来了,这个刷机教程和之前的线刷教程不一样,因为这次刷机是采用卡刷方式,也就是采用第三方的recovery来给手机刷入一个第三方的zip包就可以了,操作上也是非常的简单,虽说是简单, ...
- oppoA83怎么升级android版本,OPPO A83 刷机教程 OPPO A83 卡刷升级教程
刷机升级之前,请备份好手机上的数据资料,可使用手机自带的"备份与恢复"软件进行备份. 备份完成后,请按照以下步骤操作: 1.下载手机升级固件包,选择对应的机型ROM下载.或从OPP ...
最新文章
- OCR光学字符识别方法汇总(附开源代码)
- Angular ngClick command parse
- 垃圾收集算法,垃圾收集器_您正在使用什么垃圾收集器?
- 北航 2012 秋季 现代软件工程 团队项目要求
- kodi刮削器 中文_教你PLEX插件播放4K不能使用KODI解码导致卡顿的解决办法
- 高斯主元素消去法c语言,列主元Gauss消去法(C++实现)
- 《学习OpenCV3》第4章 图像和大型数组类型(持续更新)
- 超简单的Matlab附加功能安装包的安装方法
- oa系统服务器数据库,oa数据库和服务器
- 产品 电信nb接口调用_NB-IOT开发流程---基于中国电信物联网平台实现平台对接
- ts文件怎么合并转换成mp4?
- u2000网管服务器系统安装,U2000网管预安装后无法登陆
- KYLO的 Java 基础知识点总结(其一)
- excel双击后公式计算机,#电脑上的excel表格里的数字为什么要双击才能展开#excel文本双击后变数字...
- 小宝挪车自研第二代挪车通知技术,保护隐私无死角!
- 电脑版微信定时发送消息
- 人工智能导论(数据挖掘)
- 哺乳期这几种还真的要少吃,不能吃的食物真有那么多?
- JavaWeb项目中出现No converter found for return value of type的解决方法
- MKS Robin Nano V3.0使用说明书
热门文章
- c1083 “tensorflow/python/framework/c pp_shape_inference.pb.h”
- Windows下VS2015 MPI编译64位Boost1.64
- keras系列︱keras是如何指定显卡且限制显存用量
- tuple parameter unpacking is not supported in python3
- map/set iterator not dereferencable
- c++多线程队列 类对象
- Cissp-【第1章 安全和风险管理】-2020-12-07(32页-58页)
- php实现tcp连接esp8266,ESP8266之TCP透传
- java二叉排序树动态查找表_9.3.1动态查找表—二叉排序树
- c++ vector 存放指针_STL-C++ vector部分