UI控件
文章平均质量分 92
Lindroy
这个作者很懒,什么都没留下…
展开
-
MultiStateLayout:灵活易用的Android多状态视图布局
在GitHub上有一款很不错的Android多状态布局:MultipleStatusView,在之前的项目中我一直都使用它,但慢慢地,我发现了它的一些不便之处:配置比较死板。视图根布局的Id、点击重连控件的Id都必须按照文档的写死,如果不一致或者漏掉可能会导致一些奇怪的bug。视图状态比较有限。需要自定义一个状态视图(比如需要登录视图)的话比较麻烦,如果采用MultipleStatus...原创 2020-02-17 23:25:29 · 1211 阅读 · 0 评论 -
Android之Activity设置主题背景后AlertDialog的背景随之改变的问题
在制作App的闪屏页时如果你仔细观察就会发现,每次你在手机桌面点击图标启动应用时会先出现一个白色背景(也就是我们通常所说的白屏),然后才会跳转到闪屏页。就像这样:关于如何解决启动时的白屏问题,大家可以参考这篇博客: Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法。解决的方法很简单,就是在SplashActivity的主题中将背景设置成给闪屏页一样的图片:...原创 2018-07-21 20:31:10 · 4046 阅读 · 2 评论 -
能伸能缩的ExpandableListView(仿智联招聘专业选择列表页面)
一、前言前些日子项目中需要实现一个类似于智联招聘的专业选择页面,简单地说就是点击一级专业列表中的某一项就会展开二级专业列表,一级列表就是一个个组(组选项),二级列表就是一个组里面的成员(子选项)。智联招聘的效果如下:现在的主流列表控件毫无疑问是RecyclerView,所以你也许会想到用一个RecyclerView来显示组列表,然后在其item里面再嵌套一个RecyclerView...原创 2018-04-30 17:25:53 · 688 阅读 · 0 评论 -
利用Activity实现一个简单的可输入对话框
1、需求分析在应用中这样那样的评论总是少不了的,有的应用是在底部直接加一个EditText和一个Button,让用户输入文字或者表情之后点击按钮提交;而有的虽然也放置了EditText,但仅仅是一个“摆设”,并不具备输入功能,用户点击它后会弹出一个跳转到一个可以真正编辑的页面或者弹出一个可以输入内容的对话框。比如下面这种效果:这里的效果可以细分为四点: 1. 点击底部的按钮之后会弹出...原创 2017-10-22 23:14:31 · 1296 阅读 · 0 评论 -
Android自定义滚动式时间选择器(在他人基础上修改)
尽管Android给我们提供了时间选择控件DatePicker和TimePicker(它们的使用方法可以参考我的这篇文章Android之日期时间选择控件DatePicker和TimePicker),但无奈我的项目主色调是土豪金和高级黑,原生的控件用在里面显得格格不入,特别是为了兼容低版本的系统之后显示的是2.x年代的风格,不但是简陋,简直是丑陋了。要解决这种问题,就只有走自定义控件这条道。但我目前还...原创 2017-05-25 10:31:45 · 19480 阅读 · 14 评论 -
Android之文本日期混合滚轮选择器(仿Boss直聘)
1、需求分析GitHub上面有一款iOS风格的滚轮选择器Android-PickerView,它分为时间选择器代码TimePickerView和选项选择器OptionsPickerView,不但可以选择时间日期,可以选择我们自定义的数据,比如性别、年龄等。我一直都用它。直到最近遇到了一个需求,它的选项里面既有文字也有时间,大体效果如Boss直聘添加项目经验中的时间选择功能:从图中我...原创 2018-02-11 09:25:49 · 2255 阅读 · 0 评论 -
Android之单方向滑动的Viewpager
前一阵子在项目中遇到一个很奇葩的需求,用户注册登录的页面是分成一张张卡片的,填完一张卡片的信息才能进入下一步。我首先想到的是ViewPager,ViewPager的每个页面用Fragment填充即可。但是之前使用的ViewPager的每一个页面的左右都是紧密相连的,两个页面之间没有间隙。好在终于找到了一个第三方库可以解决这个问题:仿魅族BannerView这是一个模仿魅族广告轮播的第三方库,两个页面原创 2017-09-28 20:27:07 · 1705 阅读 · 0 评论 -
RecyclerView添加分割线的简便方法
1、前言刚开始学习RecyclerView的时候我跟着一个视频学的,当时添加分割线是从外面导入一个Java类,然后使用里面的函数来创建分割线的,所以一直以来我都是这样做的。直到前几天才无意中发现,原来v7包中提供了一个DividerItemDecoration类,利用它,我们可以很简单地实现RecyclerView的分割线!那还等什么呢?赶紧用起来。2、创建一个简单的RecyclerView首先当然原创 2017-07-30 22:07:23 · 80658 阅读 · 22 评论 -
见与不见,你说了算:Android之设置密码是否可见
我们在注册或者登录App时,难免会需要输入密码。有时候我们身旁可能有其他人在,为了不让密码“赤裸裸”地暴露在他人眼皮底下,密码字符串通常会默认显示为暗文(也就是星号或者圆点)。但还有一种情况是我们在输入密码时有时会小手一抖,会多按几下或者输错了密码,因为都是暗文,我们就只好把密码全都删掉重新输入了。这个时候我们就又怀念起能看到密码的日子了。那么有没有方法让密码在明暗文中来回切换呢。答案是肯定的,而且原创 2017-07-30 15:28:55 · 1507 阅读 · 0 评论 -
TabLayout的简单运用和若干问题的解决
1、介绍和准备我们在使用手机App时不难会看到这样的页面上面是一组起导航作用的标签,点击标签就会切换到相应的页面;在不同的页面中滑动时,标签的样式(文字大小或者颜色)也会发生变化。这样你任何时候都能一眼看出自己停留在哪个页面。这个布局出镜率实在太高了,我甚至敢说每个学Android的人都写过这样的布局(下面就是知乎中的页面)。好了,废话少说,我们照例先来分析一下这个布局的组成。标签下面的页面比较容易原创 2017-05-02 17:14:04 · 3147 阅读 · 0 评论 -
Android之自定义EditText光标和下划线颜色
最近在写些小Demo复习基础,在用到EditText的时候突然发现之前几乎没有注意到它的光标和下划线的颜色,于是花了不少时间,看了不少博客,现在就来总结和分享一下收获。1、第一印象:原生的EditText我们要在原生的EditText上修改,首先当然要认识一下它的本来面目。在Android Studio中新建一个工程,让MainActivity继承于AppCompatActivity(为什么要这样做原创 2017-05-22 13:38:15 · 29131 阅读 · 11 评论 -
Android仿淘宝头条竖直跑马灯式新闻标题及“分页思想”总结
在淘宝App的首页中间位置,有一块小小的地方在不知疲倦地循坏滚动着头条标题(见下图的红框区域),这样的设计无疑能够在有限的手机屏幕上展示更丰富的内容。而实现这一功能需要用到的控件就是我在上一篇文章中提到的ViewFlipper控件(详见“参考文章”)。在网上看到一篇博客是用自定义ViewFlipper实现的,但我却想起了我在实现饿了么导航栏时的思路:既然ViewFlipper的每个视图最多只有两个新原创 2017-06-01 15:01:36 · 1278 阅读 · 0 评论 -
Android之ViewFlipper的简单使用
大家都使用过ViewPager,但是ViewPager还有一个兄弟,那就是ViewFlipper。两者的名字非常相似,我们可以将ViewPager理解成“一页一页的视图”,ViewFlipper则是“快速翻转的视图”,但后者的使用率却远不及前者,不过这并不意味着ViewFlipper就弱了。现在我们就来拜访一下经常被冷落的ViewFlipper。1、创建工程及页面视图布局在Android Studi原创 2017-06-01 09:15:50 · 1243 阅读 · 0 评论 -
Android之日期时间选择控件DatePicker和TimePicker
这个月根据需求在项目中做了一个时间选择器,虽然没有用到Android原生的时间选择控件,但我羞愧地发现自己竟然从来没有用过这方面控件!趁现在有时间,赶紧查缺补漏,写一篇博客吧。(注:为了便于区分,本文将选择年月日的控件称为日期选择控件,将选择时分的控件称为时间选择控件。)1、创建项目新建一个项目,MainActivity的布局如下:<LinearLayout xmlns:android="http:原创 2017-05-23 17:30:28 · 20347 阅读 · 11 评论 -
Android之AlertDialog的基础使用
坦白说,AlertDialog我在工作中用得并不多,因为AlertDialog的样式比较固定和呆板,为了和App的整体设计匹配,一般都是使用自定义的Dialog,只有在要求不高时用一下。但是作为Android的基础控件之一,掌握它是十分有必要。网上相关的资料已经多如牛毛,一搜就有好几页。但我还是决定写一篇自己的博客。1、创建AlertDialog首先,我们来了解一下AlertDialog的大体创建顺原创 2017-05-23 14:18:07 · 49718 阅读 · 2 评论 -
仿饿了么首页导航栏(ViewPager)
1、需求分析在饿了么首页中我们能看到这样的布局(如下图)。红框内是一个可以左右滑动的页面,每一个页面类似于九宫格,都有可供点击图标。对于这样的布局,我在网上找了很久都没有找到相关的名称,所以我这里暂时叫它导航页吧。 最近公司的项目就要求我实现一个这样的布局,但是我们的图标并不是想饿了么这样是固定的,所以在饿了么的布局上还要加一个效果:在图标数目无法排满两行时,就只显示一行。比如说,我们每一页最多可原创 2017-03-27 10:00:01 · 6966 阅读 · 4 评论 -
EditText限制输入的字符数并弹出Toast提示字数已达上限
大家对EditText这个控件并不陌生,它是一个可供我们输入文本内容的输入框。前些日子需要实现这样一个需求:限制EditText中可以输入的最大字符数为6,达到6时,用户每按一次软键盘就弹出一个Toast提示用户,并且无法再输入内容。就像下图的效果:一开始我是直接在布局文件中在使用android:maxLength的属性将文本长度写死,然后再到代码中去监听,但是这样一来,监听也就失去了意义了,因为无原创 2017-02-24 17:16:08 · 5258 阅读 · 2 评论 -
Android学习之使用样式节省时间
假如我们想要在界面上放置多个TextView,这些TextView除了文字内容,也就是android:text属性不同以外,其他的属性都一样。那么除了像往常那样一个个给这些TextView进行设置之外有没有更好的方法呢?利用样式(Style),我们可以把相同的属性都抽离出来放在Style.xml中作为公共资源。下面是具体的步骤:在style.xml中编写样式在style.xml中创建一个名称为Tex原创 2016-07-18 17:08:58 · 597 阅读 · 0 评论 -
Button点击事件的五种写法
操作环境Project:ButtonTest IDE:Android Studio2.1学习了几个月的Android,觉得有必要复习一下前面学过的知识,哪怕再简单的知识也是可以温故而知新的。就从最简单的按钮点击事件开始吧。我总结了五种不同的写法,如下:匿名内部类使用View.onClickListener使用onClick属性自定义单击事件监听类使用外部类。我在布局上按照不同的写法放置原创 2016-07-09 20:49:08 · 10136 阅读 · 0 评论