某些时候为了响应业务需求,原生的Toast满足不了需求,唯一的办法就是自定义,一起来看一下自定义Toast,其实很简单,它自身提供了setView这样一个方法,看代码:
public static void showToast(Context context, String message) { View rootView = LayoutInflater.from(context).inflate(R.layout.taost_layout, null); TextView mTextView = (TextView) rootView.findViewById(R.id.message); mTextView.setText(message); Toast toastStart = new Toast(context); //获取屏幕高度 WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); int height = wm.getDefaultDisplay().getHeight(); //Y坐标偏移量设为是屏幕高度的1/3,适配所有机型 toastStart.setGravity(Gravity.TOP, 0, height / 3); toastStart.setDuration(Toast.LENGTH_LONG); toastStart.setView(rootView); toastStart.show(); }Toast居中显示。 布局根据自身需求随意。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/bg" android:gravity="center" android:padding="10dp"> <TextView android:id="@+id/message" android:textColor="@color/white" android:gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" /> </LinearLayout>直接条用: util.showToast(this,”自定义Toast”); OK,完事,想要了解更多,可以去官网看看。