Toast 响应点击事件
阅读原文时间:2023年07月12日阅读:1

import java.lang.reflect.Field;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnLongClickListener;
import android.widget.TextView;
import android.widget.Toast;

public class ClickToast {

public static void showToast(final Context context, int duration) {  
    Toast mToast = null;  
    if (mToast == null) {  
        TextView tv = new TextView(context);  
        tv.setLongClickable(true);  
        tv.setOnLongClickListener(new OnLongClickListener() {

            @Override  
            public boolean onLongClick(View arg0) {  
                Log.i("TAG", "ddddddddddddddddd");  
                return true;  
            }  
        });  
        tv.setText("fffffffffffffffffffffffffffffffffffff");  
        mToast = Toast.makeText(context.getApplicationContext(), "", duration);  
        mToast.setView(tv);  
    }

    try {  
        Object mTN;  
        mTN = getField(mToast, "mTN");  
        if (mTN != null) {  
            Object mParams = getField(mTN, "mParams");  
            if (mParams != null && mParams instanceof WindowManager.LayoutParams) {  
                WindowManager.LayoutParams params = (WindowManager.LayoutParams) mParams;  
                // Toast可点击  
                params.flags = WindowManager.LayoutParams.FLAG\_KEEP\_SCREEN\_ON | WindowManager.LayoutParams.FLAG\_NOT\_FOCUSABLE;

                // 设置viewgroup宽高  
                params.width = WindowManager.LayoutParams.MATCH\_PARENT; // 设置Toast宽度为屏幕宽度  
                params.height = WindowManager.LayoutParams.WRAP\_CONTENT; // 设置高度  
            }  
        }  
    } catch (Exception e) {  
        e.printStackTrace();  
    }

    mToast.show();  
}  
//反射获取filed  
private static Object getField(Object object, String fieldName) throws NoSuchFieldException, IllegalAccessException {  
    Field field = object.getClass().getDeclaredField(fieldName);  
    if (field != null) {  
        field.setAccessible(true);  
        return field.get(object);  
    }  
    return null;  
}

}

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章