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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Android编程实现多列显示的下拉列表框Spinner功能示例
本文实例讲述了Android编程实现多列显示的下拉列表框Spinner功能.分享给大家供大家参考,具体如下: 先上张效果图: 严格来说,这并不是一个下拉列表,只不过实现的效果很像是下拉列表 实现原理: 该下拉列表其实是一个AlertDialog.Builder,给它设置了一个以LinearLayout布局的View.该View内使用了一个GridView组件, 代码: package yyy.testandroid9; private Intent intent; private int ind
-
Android下拉列表(Spinner)效果(使用C#和Java分别实现)
效果如下: C#实现代码 using Android.App; using Android.OS; using Android.Widget; namespace SpinnerDemo { [Activity(Label = "@string/ApplicationName", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { private
-
Android中使用Spinner实现下拉列表功能
Spinner Spinner是一个列表选择框,会在用户选择后,展示一个列表供用户进行选择.Spinner是ViewGroup的间接子类,它和其他的Android控件一样,数据需要使用Adapter进行封装. 1,Demo展示图片 2,布局代码 //(layout)activity_main <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http
-
Android仿美团淘宝实现多级下拉列表菜单功能
我们在常用的电商或者旅游APP中,例如美团,手机淘宝等等,都能够看的到有那种下拉式的二级列表菜单.具体如图所示: 上面两张图就是美团的一个二级列表菜单的一个展示.我相信很多人都想开发一个跟它一样的功能放到自己的APP中.好,接下来我们就开始动手,解决它. 1.结构分析 首先,我们给出这个下拉菜单需要的组建.我们用线框图来分析. 1)如上图所示,最外围的是一个Activity,顶部包含了一个View的容器,这个容器主要是装载ToggleButton来实现诸如美团里面的"美食,全城,理我最近,刷选&
-
Android仿微信实现下拉列表
本文要实现微信6.1中点击顶部菜单栏的"+"号按钮时,会弹出一个列表框.这里用的了Activity实现,其实最好的方法可以用ActionBar,不过这货好像只支持3.0以后的版本.本文的接上文Android仿微信底部菜单栏+顶部菜单栏. 效果 一.仿微信下拉列表布局pop_dialog.xml <?xml version="1.0" encoding="UTF-8"?> <RelativeLayout xmlns:android
-
Android UI组件Spinner下拉列表详解
Spinner下拉列表 该布局对应的关系图: 常用属性:android:entries(指定spinner要显示的字符串资源.必须是在strings资源文件中定义的字符串资源)android:spinnerMode(spinner的模式,枚举值有两个值dialog弹窗显示和dropdown下拉显示)android:dropDownWidth(下拉框的宽度,单位通常是dp)android:prompt(当spinnerMode的值是dialog时,弹出的对话框式的下列列表的提示.如果 spinne
-
Android下拉列表spinner的实例代码
spinner组件有点类型于HTML中的下拉框<Select></select>的样子,让用户每次从下拉框中选取一个,本文为大家分享了Android下拉列表spinner的具体实现代码,供大家参考,具体内容如下 mian.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.c
-
Android下拉列表选项框及指示箭头动画
android原生的Spinner提供了下拉列表选项框,但在一些流行的APP中,原生的Spinner似乎不太受待见,而通常会有下图所示的下拉列表选项框: 初始化状态: 点击弹出下拉选择选项框: 选中后: 注意那个指示箭头,如果把这个控件写的比较精细的话,在下拉-选择-复位过程中箭头是应该有动画旋转效果的. 这种样式的选择框实现方案很多,并且常见.常用,我自己写了一个,我写的这个例子的代码运行结果就是上图所示. 首先是MainActivity.Java: package zhangphil.app
-
Android自定义单选多选下拉列表的实例代码
发疯的产品要做一个可以单选和多选的下拉列表,陪你玩玩吧. 直接上效果: 实现方案: 我的思路是自定义一个类继承PopupWindow,里面的选项采用Listview,再结合一些动画来实现. 核心代码: public class MultiSelectPopupWindows extends PopupWindow { private Context context; private View parent; private List<Search> data; private int ySta
-
Android自定义顶部导航栏控件实例代码
下面一段代码给大家介绍了android 自定义顶部导航栏控件功能,具体代码如下所示: class HeaderBar @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : FrameLayout(context, attrs, defStyleAttr) { //重写构造方法 在java里面 我们一般是重写三个构造方法//在kotlin中 我们可以使用
-
Android 自定义缩短Toast显示时间的实例代码
我这个主要是缩短Toast显示时间,要延长时间的话,可自行更改 废话不多说哈,见代码 import android.content.Context; import android.os.CountDownTimer; import android.util.Log; import android.widget.Toast; public class ToastUtil { private String TAG = "ToastUtil"; private Toast mToast; p
-
Android 自定义gradle property详解及实例代码
Android 自定义gradle property 在Android studio上运行项目,gradle的配置是必不可少的,但是随着项目的逐渐成长,迎面而来的就是.各种依赖包的添加,数不胜数的签名,渠道包等,整个gradle变得很乱,这样其实我们可以将gradle的部分内容分离出来放在另一个自定义gradle内. 如这时我们添加的Plugin 就只要对其赋值就可以了. 步骤: 在总项目根目录下创建 dependencies.gradle文件(名字可以自定义) 根目录下创建的自定义内容如下:
-
android自定义进度条渐变色View的实例代码
最近在公司,项目不是很忙了,偶尔看见一个兄台在CSDN求助,帮忙要一个自定义的渐变色进度条,我当时看了一下进度条,感觉挺漂亮的,就尝试的去自定义view实现了一个,废话不说,先上图吧! 这个自定义的view,完全脱离了android自带的ProgressView,并且没使用一张图片,这样就能更好的降低程序代码上的耦合性! 下面我贴出代码 ,大概讲解一下实现思路吧! 复制代码 代码如下: package com.spring.progressview; import android.conten
-
Android自定义ScrollView实现放大回弹效果实例代码
1,刚刚在别人开源的项目中看到了一个挺不错的用户体验,效果图如下: 2,那下面我们就来实现一下,首先看一下布局,由于一般只是我们包含头像的那部分方法,所以这里我们要把布局分成两部分,对应的布局文件效果图如下: 3,自定义ScrollView 第一步:创建一个类,继承自ScrollView,重写相应的构造函数 public class ZoomInScrollView extends ScrollView { public ZoomInScrollView(Context context) { t
-
Android自定义View中attrs.xml的实例详解
Android自定义View中attrs.xml的实例详解 我们在自定义View的时候通常需要先完成attrs.xml文件 在values中定义一个attrs.xml 然后添加相关属性 这一篇先详细介绍一下attrs.xml的属性. <?xml version="1.0" encoding="utf-8"?> <resources> //自定义属性名,定义公共属性 <attr name="titleText" for
-
Android自定义processor实现bindView功能的实例
一.简介 在现阶段的Android开发中,注解越来越流行起来,比如ButterKnife,Retrofit,Dragger,EventBus等等都选择使用注解来配置.按照处理时期,注解又分为两种类型,一种是运行时注解,另一种是编译时注解,运行时注解由于性能问题被一些人所诟病.编译时注解的核心依赖APT(Annotation Processing Tools)实现,原理是在某些代码元素上(如类型.函数.字段等)添加注解,在编译时编译器会检查AbstractProcessor的子类,并且调用该类型的
-
Android自定义流式布局/自动换行布局实例
最近,Google开源了一个流式排版库"FlexboxLayout",功能强大,支持多种排版方式,如各种方向的自动换行等,具体资料各位可搜索学习^_^. 由于我的项目中,只需要从左到右S型的自动换行,需求效果图如下: 使用FlexboxLayout这个框架未免显得有些臃肿,所以自己动手写了一个流式ViewGroup. 安卓中自定义ViewGroup的步骤是: 1. 新建一个类,继承ViewGroup 2. 重写构造方法 3. 重写onMeasure.onLayout方法 onMeasu
-
Android自定义View实现选座功能
我们在安卓开发中安卓自带的控件满足不了我们的需求,因此我们就需要用到自定义View来满足我们的需求,在这里我要讲解的是自定义View实现选座功能,在安卓中一个会使用自定义View的人一定会开发出与众不同以及美观的项目 首先,我展示一下效果 以上主要就是我们需要创建一个我们自己的View继承自Viewgroup控件并实现onMeasure以及onDraw方法 具体的代码是这样的 public class SearView extends ViewGroup { private Context co
随机推荐
- shell 正则表达式详细整理
- VBScript教程 第十一课深入VBScript
- php数组转成json格式的方法
- symfony表单与页面实现技巧
- Android如何自定义视图属性
- JavaScript中setAttribute用法介绍
- 走进javascript——不起眼的基础,值和分号
- javascript判断iphone/android手机横竖屏模式的函数
- Apache服务器中.htaccess文件的实用配置示例集锦
- 解决MySQL 5.7中定位DDL被阻塞的问题
- 浅谈MyBatis通用Mapper实现原理
- Selenium定时刷新网页的实现代码
- pyqt5 键盘监听按下enter 就登陆的实例
- Python中的支持向量机SVM的使用(附实例代码)
- Python3内置模块random随机方法小结
- PHP日志LOG类定义与用法示例
- selenium中get_cookies()和add_cookie()的用法详解
- python读取当前目录下的CSV文件数据
- 如何教少儿学习Python编程
- php实现微信和支付宝支付的示例代码