TextInputLayout和Snackbar的基本使用方法

TextInputLayout

TextInputLayout的作用是给EditText提供提示。


注意:一个TextInputLayout只能包含一个EditText。想要多个EditText都时刻有提示,则需要在每一个EditText外层都包一个TextInputLayout。


先上一张运行时截图:

具体的布局文件:
    
    
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tb_fab"
android:id="@+id/til_fab"
>
<EditText
android:hint="haha"
android:id="@+id/et1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
 
</android.support.design.widget.TextInputLayout>
     
     
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/til_fab"
android:id="@+id/til_fab2"
>
<EditText
android:hint="gaga"
android:id="@+id/et2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
 
</android.support.design.widget.TextInputLayout>
在布局文件中这样写就可以:
    
    
til = (TextInputLayout) findViewById(R.id.til_fab);
til.setHint("haha");
et = til.getEditText();
et.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
 
}
 
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
 
if(s.length() < 4) {
til.setErrorEnabled(true);
til.setError("The str's length must > 4");
}
else
til.setErrorEnabled(false);
}
 
@Override
public void afterTextChanged(Editable s) {
 
}
});
其中用到了TextInputLayout的几个方法:
1、setHint(Charsequence)   此方法的作用是显式地为EditText提供提示,无论EditText是否获取焦点,如果不调用此方法,那么系统只在EditText获取焦点时,将提示显示在EditText上方。
2、getEditText()   获取TextInputLayout包含的EditText的引用,有了此方法,就不需要通过findViewById的方式获取EditText的引用了
3、setErrorEnabled(boolean)  设置是否可以显示错误信息
4、setError(Charsequence) 设置要显示的错误信息

Snackbar
Snackbar的使用方法类似于Toast,不过它可以添加Action。
直接在代码中使用,如下:
     
     
final Snackbar s = Snackbar.make(v, "This is a Snackbar test", Snackbar.LENGTH_SHORT);
s.setAction("Cancel", new View.OnClickListener() {
@Override
public void onClick(View v) {
s.dismiss();
}
});
s.show();
运行图:

Action字体的默认颜色是Theme中的:
     
     
<item name="colorAccent">@color/colorText</item>
可以通过方法setActionTextColor(int)设置Action字体的颜色。

注意:
1、make方法的第一个参数是View,可以是整个页面上的任意一个View
2、Snackbar是从窗体底部弹出的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值