前言:
本人是第一次写技术博客,如果写的不好,望大家勿喷,嘻嘻!
写博客的缘由:
因为自己最近有那么一种感觉,以前虽然这个知识点学习过或者工作遇到的问题并且得到解决了,但是随着时间的推移,造成好多知识点都渐渐忘记的结果。到头来你就会发现当再次遇到这个问题或知识点时,似乎有点陌生,就像背英语单词一样,它认识你,你不认识它一样。还有另一个原因,那就是深感自己的理解能力和记忆能力有限,必须画画流程图和做下笔记。基于这两点,我决定点燃起我对写技术博客的欲望。写博客有以下好处:
1,随时记录下常用的知识点
2,查漏补缺,方便记忆
3,做技术总结
正文:
好了,废话不说了,进入今天的主题吧......
大家都用过toast(吐司)吧,作用呢,就是反馈用户的信息。
普通用法,看如下代码:
public void showToast() {
Toast.makeText(getActivity(),"哈哈我是第一个吐司", Toast.LENGTH_SHORT).show();
}
但是这种写法有问题,当重复点击这两个按钮,提示会不断重复按顺序出现。
这怎么解决呢。。。
这时候就要自定义了,如下:
public class ToastUtil {
private static Toasttoast;
public static void showText(Context context,String text){
if (toast==null){
toast=Toast.makeText(context,text,Toast.LENGTH_SHORT);
}else {
toast.setText(text);
}
toast.show();
}
}
就不会出现上面那种情况了。
如果要实现这样效果:
这种效果怎么实现呢,请看如下:
public class ToastUtil {
private static Toasttoast;
public static void showText(Context context,String text){
if (toast==null){
toast=Toast.makeText(context,text,Toast.LENGTH_SHORT);
//设置吐司显示的位置
toast.setGravity(Gravity.CENTER,0,0);
//得到吐司的父布局
LinearLayout linearLayout= (LinearLayout)toast.getView();
//设置父布局背景形状
linearLayout.setBackground(DrawableUtils.getGradientDrawable(Color.parseColor("#aa000000"),16));
//第一个孩子就是TextView了
TextView tv= (TextView) linearLayout.getChildAt(0);
tv.setTextSize(18);
tv.setTextColor(Color.WHITE);
tv.setGravity(Gravity.CENTER);
}else {
toast.setText(text);
}
toast.show();
}
}