Android 下拉列表Spinner

Android 下拉列表Spinner,第1张

在UI中经常会使用到下拉列表,在android控件中有两个下拉列表控件:

在xml中添加控件的使用:

主题:

这些都没有达到我要的效果:

android:entries // 传入的是values文件夹下的arrayx.xml内的数据

android:spinnerMode //显示模式有popmenu和dialog两种

android:prompt //当显示模式为dialog时生效,作用为显示dialog的标题内容

一、概述

Android中的有个原生的下拉列表控件Spinner,但是这个控件有时候不符合我们自己的要求,

比如有时候我们需要类似windows

或者web网页中常见的那种下拉列表控件,类似下图这样的:

这个时候只有自己动手写一个了。其实实现起来不算很难,

本文实现的方案是采用TextView

+ImageView+PopupWindow的组合方案。

先来看看我们的自己写的控件效果图吧:(源码在文章下面最后给出哈!)

二、自定义下拉列表框控件的实现

1.

自定义控件用到的布局文件和资源:

结果框的布局页面:dropdownlist_view.xml:

<?xml

version="1.0"

encoding="utf-8"?>

带时间戳的列表,要求时间悬浮顶部,动态替换顶部时间如下图,如下图,

多布局实现,时间悬浮为一个布局,数据相关内容为一个布局,这里推荐一个 Adapter依赖库BRVAH

根据返回的ItemViewType来加载不同的布局,动态设置时间布局的显示

加载数据时根据时间比较,判断当前数据是头部数据还是普通数据,添加进集合中

注意数据的判断,正确进行头部数据的添加。

将时间转化为xx月xx日的格式

默认情况下,最多只显示四行文本如下

点击之后,展开所有文本

具体实现如下:

设置下拉刷新,下拉加载的布局

具体实现可参考Demo,或者依赖库文档

刷新之后回调

下拉加载,上拉刷新布局如图,具体可运行demo查看

在头部悬浮,结合上拉刷新下拉加载过程中,遇到过上拉加载,导致头部悬浮布局错位,先前采用

SmartRefreshLayout ,由于SmartRefreshLayout上拉加载会将布局向上顶,导致悬浮布局错误,调试无果后,采用 EasyRefreshLayout 。

头部悬浮的上拉加载,下拉刷新的列表主要实现采用 Adapter依赖库BRVAH 及其推荐相关库 EasyRefreshLayout 和 RecyclerView粘性标签库 。其他更多用法,可以自行访问相关库学习。

最后给出 DEMO .


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11637853.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存