android 选择银行类型,『自定义View实战』—— 银行种类选择器
在工作中难免遇到自定义 View 的相关需求,本身这方面比较薄弱,因此做个记录,也是自己学习和成长的积累。自定义View实战
前言
年前的最后一个开发需求,将之前H5开卡界面转变成native。意思就是开卡这个需求做成Android原生的界面,就这单单一个界面需要请求 8 个接口!可想逻辑是有多复杂,其中中间有个小需求-「选择银行卡」。来看一下UI出图。
大致就是点击「银行」弹出popupWindow,在里面嵌套一个银行选择器。这个「银行选择器」可以滚动类似IOS那边的UIPickerView,或者安卓的日期选择器,但是为了完成特殊的定制效果,所以咱们得自己写一个。BankPickerView
看一下效果图:
实现
思路其实也很简单。
滚动
ScrollView、ListView和RecyclerView都可以实现滚动,这自然不用说,首尾都有offset个位置是留占坑,可以添加空数据作为占坑的显示。
回弹
那就在手指松开的时候,拿到滑动的距离,通过一系列的逻辑处理,回弹到最近的Item处即可。
回调
在滑动停止的时候,通过计算获取当前所处的item的位置,通过listener回调给调用者。
因为时间有限,所以没对其进行封装,如果想使用请自行下载,通过修改源码满足特定的需求。
至于弹出的效果,用的是popupWindow,其中遇到了一下坑,在这里记录并分享一下。
背景透明
popupWindow不像dialog本身是没有背景透明的效果的,需要自己实现。主要就是两种实现方式。
xmlns:skin="http://schemas.android.com/android/skin"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#7D000000"
skin:enable="true">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:layout_alignParentBottom="true"
android:orientation="vertical">
一种就是直接在pooupWidnow展示的布局强行假如半透明的背景。
第二种获取WindowManager修改当前窗口的透明值。
点击返回关闭 popupWindow
首先如果想实现点击返回让popupWindow消失,就得实现View.OnKeyListener接口,并且在回调中,让其消失。
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
dismiss();
return true;
}
return false;
}
但是你会发现并没有生效,那是因为当前没有获取到焦点,需要设置setFocusable(true)即可。
android 选择银行类型,『自定义View实战』—— 银行种类选择器相关推荐
- android 行布局选择器,『自定义View实战』—— 银行种类选择器
在工作中难免遇到自定义 View 的相关需求,本身这方面比较薄弱,因此做个记录,也是自己学习和成长的积累.自定义View实战 前言 年前的最后一个开发需求,将之前H5开卡界面转变成native.意思就 ...
- 『自定义View实战』—— 仿ios图标下载view DownloadLoadingView
2019独角兽企业重金招聘Python工程师标准>>> ## 前言 最近项目需要接入环信客服 SDK ,我配合这同事完成,其中我负责文件下载这部分. 因为时间比较紧张,8 天的时间完 ...
- android 图片处理过程中添加进度条,『Android自定义View实战』给我一个图标,还你一个水波纹进度球...
前言 我们都知道,平时表现进度的方式有千千万万种(没有UI想不到的,只有你做不到的= =.),其中有一种就是水波纹进度球的形式,网上很多种实现都是直接采用纯色填充的方式,即水波纹都是纯颜色填充,效果看 ...
- android 画圆弧动画,『Android自定义View实战』自定义带入场动画的弧形百分比进度条...
写在前面 这是在简书发表的处女座,这个想法也停留在脑海中很久了,一直拖到现在(懒癌发作2333),先自我介绍一番,一枚刚毕业不久的Android程序猿,初出茅庐的Android小生,之前一直在CSDN ...
- android 弹出菜单环形,『Android自定义View实战』实现一个小清新的弹出式圆环菜单...
前言 Android表现快捷菜单的形式有很多种,比如使用PopupWindow弹出来的小弹窗,类似QQ的侧拉功能菜单,以及之前讲过的弧形菜单( Android 自定义弧形旋转菜单栏--卫星菜单),这次 ...
- 【Android自定义View实战】之自定义评价打分控件RatingBar,可以自定义星星大小和间距...
[Android自定义View实战]之自定义评价打分控件RatingBar,可以自定义星星大小和间距
- Android 系统(201)---Android 自定义View实战系列 :时间轴
Android 自定义View实战系列 :时间轴 Android开发中,时间轴的 UI需求非常常见,如下图: 本文将结合 自定义View & RecyclerView的知识,手把手教你实现该常 ...
- [自定义控件]android自定义view实战之太极图
android自定义view实战之太极图 尊重原创,转载请注明出处: http://blog.csdn.net/qq137722697 自定义view是Android工程师进阶不可避免要接触的,我的学 ...
- Android进阶之自定义View实战(二)九宫格手势解锁实现
一.引言 在上篇博客Android进阶之自定义View实战(一)仿iOS UISwitch控件实现中我们主要介绍了自定义View的最基本的实现方法.作为自定义View的入门篇,仅仅介绍了Canvas的 ...
最新文章
- Java网络编程实例---------------------------------基本HTTP客户端及服务端多线程
- 软件压力测试linux服务器,使用http_load来给Linux系统的服务器做压力测试
- C# 字符串操作:split、substring、Format
- vuejs模仿实现一个电影分享类网站
- Homebrew简单使用
- 网络异步编程(C#)团购课
- mysql 12_Navicat for MySQL12免费版
- 挑战程序设计竞赛:三角形
- docker镜像存储在哪里
- 混淆的艺术-(苍井空变凤姐)Proguard源码分析(一)前言和计划
- antd 日期组件出现了英文
- 搜狗VS有道,搜索市场追赶者
- java 中的todo_详解在TodoController中引用TodoRepository
- 机器学习经典算法---线性回归(Linear Regression)算法
- 18对个人财富的窥视——对一款手机木马的解读及分析
- python生成loss/acc训练曲线
- 高完整性系统(4)Formal Logic (形式逻辑和 Alloy 简介)
- 屏蔽winrar压缩软件弹出广告
- 视频行为识别-1数据库
- 沙行勉 python_清华大学出版社-图书详情-《智能机器人原理与实践》
热门文章
- linux jdk路径
- JS JQ 页面加载顺序方法的区别
- win10+anaconda3+python3.6+opencv3.1.0
- linux/ubuntu查看内核版本命令
- 非常不错的Coding-iOS开源项目
- Spring中注入List,Set,Map,Properties的xml文件配置方法
- Mono for Android 4.2初探
- 扫描识别工具Dynamic Web TWAIN使用教程:单独添加/删除对象
- [NOI2015Day1]解题报告
- 从0开始学习 GitHub 系列之「团队合作利器 Branch」