终于介绍到Design包的最后的东西了。

也很简单,一个是TextInputLayout。

TextInputLayout作为一个父容器,包含一个新的EditText,可以给EditText添加意想不到的效果,特别在注册功能开发中,用处非常广泛。

它可以直接提示输入错误,而不至于像以前一样总是点击按钮后才能检测出输入的错误,当有很多输出框的时候更是难以区分。。

并且还可以把hint 默认提示值放到上面去。

项目已经同步至:https://github.com/nanchen2251/CoordinatorLayout  包含了前面的demo代码

实现界面大概是这样的。

当你输入正确后是这样的。

实现代码也很简单。

添加一个监听焦点事件

  @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_text_input);textInput = (TextInputLayout) findViewById(R.id.text_input_layout);textInput.getEditText().addTextChangedListener(this);}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {}//完成@Overridepublic void afterTextChanged(Editable s) {if(s.length()<6){textInput.setError("密码不能小于6!");textInput.setErrorEnabled(true);}else{textInput.setErrorEnabled(false);}}

  

XML文件中的定义

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.example.nanchen.designcoodinatordemo.TextInputActivity"><EditTextandroid:layout_width="match_parent"android:hint="输入用户名.."android:layout_height="wrap_content"/><android.support.design.widget.TextInputLayoutandroid:layout_width="match_parent"android:id="@+id/text_input_layout"android:layout_height="wrap_content"><EditTextandroid:layout_width="match_parent"android:hint="输入密码..."android:layout_height="wrap_content"/></android.support.design.widget.TextInputLayout><android.support.design.widget.TextInputEditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:hint="邮箱"/></LinearLayout>

  

然后再来看一下FloatingActionButton。

其实它就是一个可以悬浮的Button,可以把它放在CoordinatorLayout的容器中并重写FloatingActionButton的Behavior可以达到想要的效果。

这里是下拉隐藏。

package com.example.nanchen.designcoodinatordemo;import android.content.Context;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.FloatingActionButton;
import android.util.AttributeSet;
import android.view.View;/*** 自定义Behavior* Created by 南尘 on 16-7-14.*/
public class MyBehavior extends FloatingActionButton.Behavior {//写了这个构造方法才能在XML文件中直接指定public MyBehavior(Context context, AttributeSet attrs) {super();}@Overridepublic boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View directTargetChild, View target, int nestedScrollAxes) {return true;//返回true代表我们关心这个滚动事件}@Overridepublic void onNestedPreScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View target, int dx, int dy, int[] consumed) {super.onNestedPreScroll(coordinatorLayout, child, target, dx, dy, consumed);if (dy < 0) {//向下滚动
//            ViewCompat.animate(child).scaleX(1).alpha(1).start();child.show();} else {//向上滚动
//            ViewCompat.animate(child).scaleX(0).alpha(0).start();child.hide();}}
}

  FloatingActionButton是有show和hide显示和隐藏方法的。

具体图就不截了,本人做不来gif动图,略显尴尬,不过抽时间一定好好学学!

转载于:https://www.cnblogs.com/liushilin/p/5672361.html

安卓Design包下的TextInputLayout和FloatingActionButton的简单使用相关推荐

  1. 安卓Design包之AppBar和Toolbar的联用

    前面讲了Design包的的CoordinatorLayout和SnackBar的混用,现在继续理解Design包的AppBar; AppBarLayout跟它的名字一样,把容器类的组件全部作为AppB ...

  2. android design包控件,Android Design包之TextInputLayout和TextInputEditText的组合使用【原创】...

    在Android的日常开发中,EditText是个不可或缺的控件之一,作为输入框,用法也没什么太多值得可说的,拿一个简单的登录界面为例,平时差不多是这样的布局: 一般来说是这样,EditText里面的 ...

  3. Mybatis中接口与映射文件一定要同名且放在同一个包下?

    前言: 相信很多接触Mybatis一段时间的开发者,依旧对这个问题可能还存在疑惑,最近很多读者向我提到过,我觉得还是很有必要写篇文章来抒发一番,毕竟我骚啊. 首先,大部分人是认为接口与映射文件一定要同 ...

  4. Design下TextInputLayout结合EditText的简单使用

    今天写的是Design下的TextInputLayout. 稍微介绍一下,一般我们在App上面登录注册页面时,都需要去检测用户输入的内容是否正确,然后给出提醒或错误显示.之前我们都是布局写一大堆代码, ...

  5. 号外 ! 号外 ! V7包下的View都来此参加同学会 , 快来看,快来看...

    考虑到V7包实在大-–既庞大又强大 , 请所有与会的同学到门口来 我们先拍一张全家福: 1 . android.support.v7.widget.Toolbar 2 . android.suppor ...

  6. 带你实现开发者头条APP(四)---首页优化(加入design包)

    一 .前言 上次模仿开发者头条首页实现了一个版本,给345大神,我的产品经理一看,又被鄙视了一把,说还在用老的技术,于是乎这三天把整个design包研究了一遍,然后把首页的代码几乎重写了一遍....顺 ...

  7. 安卓抓包软件_Packet Capture安卓抓包神器介绍及使用教程

    除了干货,其他什么也没有 源码|资源|软件|教程|揭秘 关 注 Packet Capture是一款安卓抓包软件,能用来提取用户操作程序内容,Packet Capture可以捕获网络数据包,并记录它们使 ...

  8. 2-SII--应用本包下文件写入和读取

    零.先说一下我的IO小工具方法: 1.IO读写: IO.png 2.读取InputStream /*** 读取InputStream** @param is 输入流* @return 流转化的字符串* ...

  9. linux手机刷机包制作工具_大神教你五分钟制作安卓ROM包 ROM包修改教程

    之前很多人在网上问:"如何自己制作安卓ROM包?"今天,刷机帮的小编就给大家分享一篇关于安卓ROM包制作以及修改的实用教程,感兴趣的朋友可以一起来看看,当然,老司机就直接略过. 制 ...

最新文章

  1. c4d中的3D插图制作视频教程 Skillshare – 3D Illustration in Cinema 4D
  2. opencv 九点标定_精度与HALCON结果仅差(±0.2mm)
  3. 高达82 fps的实时文本检测,可微分二值化模块
  4. 机器学习笔记:VAE
  5. SAP Spartacus 开发规范
  6. 阿帕奇跨域_阿帕奇光束
  7. 项目学生:分片集成测试数据
  8. MySQL 索引的查询、创建与删除
  9. 【一天一个C++小知识】002.C++中const和volatile关键字
  10. 十分钟教你学会vi编辑器使用方法(详细版)
  11. 基于Material Studio软件使用第一性原理预测AlAs的晶格参数
  12. Windows下安装JanusGraph(踩坑记录)
  13. 看似落魄的灵魂登场却如此隆重,风 吹散了平庸 爱漫延没有尽头
  14. java espresso车架,只爱钢架公路:Casati Espresso
  15. android禁用模拟器,Android 禁止应用在模拟器上运行
  16. 数字罗列模拟水题-郑轻 2438
  17. java无头浏览器,如何使用Selenium Java中的机器人类在无头浏览器中上传文件
  18. CN3905规格书|CN3905完全替代MT3905|pin to pin替代MT3905芯片
  19. 九度OJ题目1019:简单计算器
  20. 留在SSL的6天快乐(?)集训心态爆炸记

热门文章

  1. 怎么用php操作mysql删除数据库代码_如何使用php操作mysql的增删改查?
  2. 【深度学习入门到精通系列】U-net网络分析
  3. 【django轻量级框架】云端系统之Django框架实现云端留言板(不用数据库,看不懂你来打我)
  4. Tensorflow【实战Google深度学习框架】—Logistic regression逻辑回归模型实例讲解
  5. UVa 10375 Choose and divide
  6. Python-time标准库知识小结
  7. c语言程序如何实现递减,写一个程序让非递减变成非递增,用C语言。一个程序用两个函数...
  8. 线程同步锁 java_java多线程同步之重入锁,详细解析
  9. 使用proxy来调用未定义的属性方法
  10. 网络营销推广软件浅析网络优化时该如何更好的判断友链的质量?