官方推荐使用Snackbar代替Toast
Snackbar使用其实就是一句话,跟toast很相似:
Snackbar.make(view,"消息已发出",Snackbar.LENGTH_SHORT).show();
但是有几个注意点,make方法的第一个参数是一个view,任何一个view都可以,但是官方推荐使用CoordinatorLayout,有俩个好处:
1.用户可以滑动(右滑)消除掉snackbar。
2.当snackbar出现的时候,布局会移动一些UI元素,比如右下角的悬浮按钮会自动上移。
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"Snackbar",Toast.LENGTH_SHORT).show(); } }) .setActionTextColor(ContextCompat.getColor(getApplicationContext(),R.color.fab_background_color)) .show(); } });
效果:
谈到这里呢,提下getResources().getColor()已经过时了,可以用ContextCompat.getColor(context,R.color.colorId)取代
context可以为getContext或者getApplicationContext等。