- 博客(12)
- 资源 (14)
- 收藏
- 关注
原创 Android Material Design 之 Toolbar
前言从 Android 3.0 开始,推出了 ActionBar。但是,随着版本的升级,ActionBar 的行为也发生了变化。从 5.0 开始,ActionBar 提供了 Material Design 的体验。但是想要 5.0 之前的系统也支持 Material Design 怎么办呢?那么就用 Toolbar 吧!Toolbar 在 Support Library 中,所有对应的系统版本都能有
2017-07-25 23:09:56 953
原创 Android Material Design 之 TabLayout
Material Design 中的 Tab 设计可以参考官方文档 https://material.io/guidelines/components/tabs.html#tabs-usage ,其中的 Tab 部分 Support Library 提供了专门的控件 TabLayout。TabLayout 的简单使用布局文件的定义如下:<?xml version="1.0" encoding="ut
2017-07-24 22:57:48 1066
原创 Android CheckBox setButtonDrawable(null) 在 4.x 版本中无效
当我们需要只显示 CheckBox 的文字,而不显示按钮的时候,通常在 XML 文件中设置 CheckBox 的 android:button=”@null”。当我们自定义 CheckBox 并希望在代码中控制按钮不显示的时候,可以 setButtonDrawable(null) 来达到效果。但是有一个问题,setButtonDrawable(null) 在 4.x 中是没有效果的,从 5.0 开始
2017-07-19 22:08:45 1531
原创 Android Material Design 之 TextInputLayout
TextInputLayout 是 Material Design 风格的输入框。效果如下。EditText 在获取焦点的时候,hint 会作为 title 移动到上面去,这样用户输入的过程中也能看到 hint。TextInputLayout 自带 Error Message,当发生错误的时候,消息显示到线的下方,并且线的颜色也会变掉。EditText 只要用 TextInputLayout 包裹一
2017-07-19 22:07:53 1053
原创 关于 Android NumberPicker 的两个问题
使用 NumberPicker 的过程中发现两个问题 1. NumberPicker 的 setFormatter 对第一个显示的 Item 没有效果。 2. NumberPicker 没有提供接口去修改它的 Design。NumberPicker 的 setFormatter 对第一个显示的 Item 没有效果numberPicker.setMinValue(0);numberPicker.
2017-07-19 22:06:40 2666
原创 Android 自定义 EditText 达到从右边输入的效果
背景最近项目要求可以输入体重,而且小数点是自动输入的,不需要用户输入。这样就带来一个问题,体重的整数位可以是两位,比如 60.5,也可以是三位,比如 100.5,如果单位是 g,也可以是四位,比如 1000.5。那么小数点自动输入的话,是在第二位整数后面输入?还是在第三第四位整数后面输入?这个根本没有办法判断!所以 UX 提出了一个方案:小数点固定为两位,输入时从右边开始输入。举个例子:如果想输入
2017-07-19 22:05:29 3471
原创 Android DataBinding (六) EditText 绑定 TextChangedListener 和 FocusChangeListener
XML 如下设定<EditText ...... app:addTextChangedListener="@{vm.textWatcher}" app:onFocusChangeListener="@{(view, hasFocus) -> vm.setText(((EditText)view).getText().toString(), hasFocus)}" />View
2017-07-19 21:57:47 9382 1
原创 Android DataBinding (五) 自定义 View 的双向绑定
前言自定义 View 的时候如果用到非系统定义的属性的时候,如果要实现双向绑定,不是用了 @= 就行的,自定义 View 中还需要一些设置。下面通过一个例子来说明自定义 View 的双向绑定的实现。例子要求: 1. 通过 RadioButton 来选择爱好(爱好的选项是:吃饭 / 睡觉 / 打豆豆) 2. 画面加载的时候显示初始的爱好值(将 ViewModel 里设好的值传到 RadioButt
2017-07-16 00:33:10 14183 2
原创 Android DataBinding (四) 自定义属性
前言DataBinding 的时候,会调用 View 的,setXxx 方法。比如下面代码<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.name}" />绑定的时候,会调用 setText(String text)
2017-07-16 00:31:56 5306
原创 Android DataBinding (三) Observable
BaseObservableViewModel 的值变化之后,如果需要画面做相应的刷新,那么可以继承 BaseObservable。private static class User extends BaseObservable { private String firstName; private String lastName; @Bindable public Stri
2017-07-16 00:31:01 2699
原创 Android DataBinding (二) 事件处理
DataBinding 的事件处理有两种方法 1. 方法引用 2. Listener 绑定方法引用通常会定义一个 Handler 或者 Presenter 类,并定义一个和 Listener 的方法签名一样的方法,然后再 xml 中调用。public class MyHandlers { public void onClick(View view) { ... }}<TextView
2017-07-16 00:29:54 3224
原创 Android DataBinding (一) 基本用法
概述2015 年的 I/O 大会上,Google 发布了官方的数据绑定框架 Data Binding Library,使得官方原生支持 MVVM。Data Binding 是把数据直接绑定到 XML 文件上,并能实现自动刷新。Data Binding 减少了代码的耦合性,一些如 findViewById、setText 之类的操作都可以通过绑定实现。环境配置环境配置非常简单,只要在 build.gr
2017-07-16 00:29:00 7142
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人