Android5.0是有史以来最重要的安卓版本之一,引入了material design,这种新的设计语言让整个安卓的用户体验焕然一新。谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现Material Design设计效果,官方给出了Android support design library 支持库,让开发者更容易的实现材料设计的效果。
1、Snackbar
Snackbar提供了关于操作的轻量级的反馈。它可以从屏幕底部展示一个简短的消息,与Toast相似,但是它更灵活和功能更加强大。当它显示一段时间后或者用户与屏幕交互时,它会自动消失。可以包含一个动作action。Snackbar出现在屏幕所有其他元素之上,同一时间内只有一个Snackbar显示。
应用场景:
Dialog:当提示信息是至关重要的,并且必须要由用户做出决定才能继续的时候,使用Dialog。
Toast:当提示信息只是告知用户某个事情发生了,用户不需要对这个事情做出响应的时候,使用Toast。
Snackbar:以上两者之外的任何其他场景,Snackbar可能会是你最好的选择。
1)、基本使用
private Snackbar snackbar;
snackbar = Snackbar.make(btnShowSnackbar, "SnackBar is showing", Snackbar.LENGTH_LONG);
snackbar.show();
参数:
view:Snackbar会通过该view寻找一个父View来持有Snackbar的view。只要是当前界面布局的任意一个view都可以
text:显示的消息
duration:与Toast一样,控制Snackbar的显示时间。
效果如下:
2)、Snackbar设置样式
a、设置Snackbar的背景色
snackbar.getView().setBackgroundColor(Color.RED);
b、设置Snackbar文字的颜色。文字位于snackbar的左边
TextView textView = (TextView) snackbar.getView().findViewById(R.id.snackbar_text);
textView.setTextColor(Color.BLUE);
c、设置Action text文字的颜色。文字位于Snackbar的右边
snackbar.setActionTextColor(Color.BLACK);
效果如下:
3)、Snackbar设置Action事件
action事件可以让用户做出选择,选择后进行相应操作
snackbar.setAction("click action", new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(SnackbarTestActivity.this, "Snackbar 被点击", Toast.LENGTH_SHORT).show();
}
});
第一个参数是显示的文本,位于Snackbar的右边,点击该文字时会回调第二个参数定义的Listener
4)、Snackbar设置状态回调
snackbar.setCallback(new Snackbar.Callback() {
// snackbar消失时调用
@Override
public void onDismissed(Snackbar snackbar, int event) {
super.onDismissed(snackbar, event);
Log.i(TAG, "snackbar onDismissed--event=" + event);
}
// snackbar显示时调用
@Override
public void onShown(Snackbar snackbar) {
super.onShown(snackbar);
Log.i(TAG, "snackbar onShown");
}
});
回调方法的具体含义见注释
2、FloatingActionButton
FloatingActionButton是悬浮按钮,用来强调当前屏幕中最重要的动作,吸引用户的注意。继承自控件ImageButton。
1)、常用属性
app:backgroundTint:设置默认状态下FAB的背景颜色。默认的背景颜色取的是theme中的colorAccent的值
app:rippleColor:设置FAB点击时的背景颜色。注意:FAB设置setOnClickListener()后才有效果
app:elevation:设置默认状态下FAB的阴影大小。
app:pressedTranslationZ:点击时候FAB的阴影大小。实际阴影大小=app:elevation+app:pressedTranslationZ
app:fabSize:设置FAB的大小,该属性有两个值,分别为normal和mini,对应的FAB大小分别为56dp和40dp。默认是normal
app:layout_anchor:设置FAB的锚点,即以哪个控件为参照点设置位置。该属性需要在CoordinatorLayout布局中使用才生效
app:layout_anchorGravity:设置FAB相对锚点的位置,值有bottom、center、right、left、top等。该属性需要在CoordinatorLayout布局中使用才生效
2)、使用方法
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_margin="50dp"
android:src="@mipmap/ic_launcher"/>