Android自定义单选多选下拉列表的实例代码
作者:Fun_He 发布时间:2022-06-08 15:53:33
标签:Android,下拉列表
发疯的产品要做一个可以单选和多选的下拉列表,陪你玩玩吧。
直接上效果:
实现方案:
我的思路是自定义一个类继承PopupWindow,里面的选项采用Listview,再结合一些动画来实现。
核心代码:
public class MultiSelectPopupWindows extends PopupWindow {
private Context context;
private View parent;
private List<Search> data;
private int yStart;
private SearchPopupWindowsAdapter adapter;
public MultiSelectPopupWindows(Context context, View parent, int yStart, List<Search> data) {
this.context = context;
this.parent = parent;
this.yStart = yStart;
this.data = data;
initView();
}
private void initView() {
View view = View.inflate(context, R.layout.popupwindows_multiselect, null);
view.startAnimation(AnimationUtils.loadAnimation(context, R.anim.fade_in_slow));
LinearLayout linearLayout = (LinearLayout) view.findViewById(R.id.linearLayout_selector);
linearLayout.startAnimation(AnimationUtils.loadAnimation(context, R.anim.list_top_in));
ListView listView = (ListView) view.findViewById(R.id.listView_selector);
setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
setBackgroundDrawable(new BitmapDrawable());
setFocusable(true);
setOutsideTouchable(true);
setContentView(view);
showAtLocation(parent, Gravity.TOP, 0, DensityUtil.dip2px(context, yStart));
update();
initListView(listView, data);
}
private void initListView(ListView listView, List<Search> data) {
adapter = new SearchPopupWindowsAdapter(context);
adapter.setItems(data);
listView.setAdapter(adapter);
}
public List getItemList() {
return adapter.getItemList();
}
}
项目源码:https://github.com/hfrommane/MultiSelectPopupWindows
来源:http://blog.csdn.net/hfrommane/article/details/76304113
0
投稿
猜你喜欢
- Vitamio是一个功能强大而稳定的播放器库,它支持多种视频格式和编解码方式,并且具有快速、流畅的播放效果,因此在一些对播放质量要求比较高的
- 前言大家或许在iOS程序开发中经常遇到屏幕旋转问题,比如说希望指定的页面进行不同的屏幕旋转,但由于系统提供的方法是导航控制器的全局方法,无法
- 概念逃逸分析一种数据分析算法,基于此算法可以有效减少 Java 对象在堆内存中的分配。 Hotspot 虚拟机的编译器能够分析出一个新对象的
- 我的安卓开发经历始于一个原生安卓项目开发。后来由于公司有个项目与几家医疗设备公司合作,需要我写安卓端的桥接代码给 react native
- 由于要在Web项目中采用RFID读取功能,所以有必要开发Activex,一般情况下开发Activex都采用VC,VB等,但对这两块不是很熟悉
- 常用的类:@ConditionalOnProperty(name = "use.redis.session.store"
- 前言:在我们购买商品或其他操作的时候,这时候微信公众号会推送相关模版消息。接下来简单介绍开发流程:(本文以订单推送为例)首先在测试号新建模版
- 在界面设计中,一个容器要放置许多组件,为了美观,为组件安排在容器中的位置,这就是布局设计。java.awt中定义了多种布局类,每种布局类对应
- 1、mapper.xml文件中的sql语句不提示1.1 首先,alt+enter,出现如下窗口随后的窗口选择这样在如下窗口中会增加一个upd
- yml与properties其实yml和properties文件是一样的原理,且一个项目上要么yml或者properties,二选一的存在。
- 本文实例为大家分享了C语言实现扫雷游戏的具体代码,供大家参考,具体内容如下前言一、游戏规则介绍扫雷是一个十分经典的游戏,一张棋盘中有很多个不
- 0.Springboot项目创建通过https://start.spring.io/生成纯净的一个springboot工程1.引入Activ
- Spring5新功能一、@Nullable 注解@Nullable 注解可以使用在方法、属性、参数上,分别表示方法返回可以为空、属性值可以为
- resultType和resultMap只能有一个成立,resultType是直接表示返回类型的,而resultMap则是对外部Result
- 什么是WebSocket?WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信—
- pom.xml文件需要的内容<dependency> <groupId>re
- 一、组件型注解:1、@Component 在类定义之前添加@Component注解,他会被spring容器识别,并转为bean。2、@Rep
- 一般而言,一个项目部署的由:拉取代码->构建->测试->打包->部署等过程组成,如果我们经常需要部署项目,特别是在微
- Spring的主要特性包括IOC和DI,其中DI是IOC的基础。在以前的Spring使用过程中大部分都是使用XML配置文件显式配置sprin
- 概述在JAVA JDK8 List分组的实现和用法一文中介绍了JDK 8如何对list进行分组,但是没有提到如何在分组后,获取每个分组的第一