Android自定義Toast
-
Toast
的基礎(chǔ)用法
Toast toast = Toast.makeText(getApplicationContext(), "Normarl toast", Toast.LENGTH_SHORT).show();
-
Toast
顯示的位置
通常情況下Toast
顯示在整個(gè)界面的底部水平中間的位置横辆,但是Toast
現(xiàn)實(shí)的位置也是可以調(diào)整的茄猫,通過setGravity(int, int, int)
方法來調(diào)整其位置
Toast toast = Toast.makeText(getApplicationContext(), "Normarl toast", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP | Gravity.RIGHT, 0, 0);
toast.show();
- 自定義
Toast
創(chuàng)建自定義的layout文件脆侮,使用LayoutInflater
渲染布局文件,最后使用Toast
的setView(View)
方法來實(shí)現(xiàn)
如果不是自定義
Toast
,請(qǐng)使用makeText(Context, int, int)
方法來創(chuàng)建Toast
芭毙,不要使用Toast
的構(gòu)造方法
自定義布局文件res/layout/custom_toast.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/custom_toast_container"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="8dp"
android:background="#DAAA"
>
<ImageView android:src="@drawable/ic_action_discover"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFF"
android:text="This is a custom toast"/>
</LinearLayout>
Java 代碼邏輯
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.custom_toast, null);
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_SHORT);
toast.setView(view);
toast.show();
- 點(diǎn)擊一次顯示一次Toast
有時(shí)候連續(xù)點(diǎn)擊會(huì)出現(xiàn)很多的Toast
的提示,如果用戶無操作蚣抗,會(huì)導(dǎo)致toast提示一直存在,需要等很長(zhǎng)時(shí)間
才會(huì)消失钝域,想要的效果是點(diǎn)擊一次顯示一次例证,
private Toast mToast;
private void showToast(String msg){
if(mToast != null)
mToast.cancel();
mToast = Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT);
mToast.show();
}
根據(jù)自己的需求開發(fā)不同類型的Toast