Android开发笔记——ListView的零零碎碎
来源:互联网 发布:什么购物软件好 编辑:程序博客网 时间:2024/06/01 07:49
在数据流型的移动应用中,列表在数据展示上作用很大。随便拿个微博或SNS应用,你就能发现自己接触的多是列表。列表承担的责任包括数据展示,对特定对象的快捷操作等。我在写Android作业是也收集了一些零零碎碎的东西,在此一并分享出来吧。
一、下拉刷新
下拉刷新目前已经是数据流APP的标配了。Android没有原生的下拉刷新控件支持,但只要你想没有不可能。某老外放出了一个下拉刷新的实现代码。请猛击这里。还有人为他写了一个简单的指南。
二、Quick Action
Quick Action或许可以称为快捷动作,意思是点击list的item后出现一个动作栏,提供快捷的操作。唔……其实和context menu差不多啦,不过么……这个看上去绚一点。
教程在这里。
三、Android控件大杂烩
一直很希望能找到一个介绍各种Android UI pattern的网站,现在这里有一个。要是再完整一点,整理好一点那就更完美了。
吾记得国人做过一个iOS的,有兴趣的同学去查查。
四、带圆角的ListView
圆角流行很久了,给ListView加上圆角会很酷。例如下面这个样子。
实现方法有好几种:
1. 给ListView整体设置一个带圆角的background
在XML文件里你或许会这么做
bg_list
便是你定义的可以自适应大小的圆角图。具体做法你可以参看我的Android开发笔记——圆角和边框们。
这是我们最容易想到的一种解决方案。在很多时候它能起到作用。
但是要应对上面的那种样子好像不太容易哦,怎么让scroll跑外面去?listview是占整个屏幕的宽度还是要做一个margin?
唔,想来想去,好像只能这么干。
等你实际运行一下你就发现——坑爹了。这个listview的background就和一个相框一样,而不是我们想要的那种:让整个list看上去像带圆角的卡片。此外,你的scroll也不是在屏幕的边缘,而是随listview过去了。当然,你可以在listview外面加一个ScrollLayout,但请相信我,那样还是起不了什么大作用。
所以,这个解决方案适合什么情况呢? 当你需要做一个内部能滑动的带圆角的框体。
2. 给ListView设置padding,给每一个条目分别设置background
我曾逆向工程Twitter for Android 想看看它们是怎么实现这样的卡片ListView的。我拿到了XML文件,我发现他们用了一个自定义的”CardView”,尼玛这得看Java源码。但反编译出来的结果甚是坑爹,我只能放弃。
后来我自己研究了一下,找了个替代方案。
基本思想是在ListView的Adapter的getView()函数里,根据position动态设置每个item的background。如,如果是第一个item,就给他一个顶部是圆角的背景。如果是当中的item,则给一个不带圆角的背景。如果是底部的item,就给一个底部带圆角的背景。
实现代码片段如下:
每个item 背景的selector,如顶部item的背景
bg_list_row_top.xml其他的几种状态如focused, pressed请自己脑补。
你的ListView需要占满屏幕,并且可以做如下属性设置
- Android开发笔记——ListView的零零碎碎
- Android开发笔记——ListView的零零碎碎
- CSP课堂零零碎碎的笔记
- Android开发笔记—ListView的基础使用
- Java零零碎碎的笔记(一)
- Java零零碎碎的笔记(二)
- 一些零零碎碎的知识(笔记)
- 笔记,见了就忘的零零碎碎
- android开发笔记:listview
- Android开发笔记----listview的使用
- Android开发——ListView的运用
- Android开发————ListView学习笔记
- android开发笔记——含图标的expandable listview(通过重写adapter)
- 零零碎碎的总结
- postfix的一些零零碎碎
- LaTeX的零零碎碎记录
- 零零碎碎的总结
- JavaScript零零碎碎的知识点
- Eclipse中10个最有用的快捷键组合
- PE格式详解 8 导出表
- 元器件封装总结(更新中)
- MutexDemo
- 笔试题:环上货物均摊/糖果传递 解题报告
- Android开发笔记——ListView的零零碎碎
- 在UITableView中显示数据
- 在社区内核上使用libvirt工具时为网络not active问题解决方法
- 代码中特殊的注释技术——TODO、FIXME和XXX的用处
- Linux双系统实现
- Android学习笔记--Binder
- 用户权限管理
- C#数组概述
- 快速上手Spring