某些时候为了响应业务需求,原生的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,完事,想要了解更多,可以去官网看看。