android Activity改成dialog样式后 怎么设置点击空白处关闭窗体,如图点击窗体意外的地方关闭窗体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android Activity改成dialog样式后 怎么设置点击空白处关闭窗体,如图点击窗体意外的地方关闭窗体相关的知识,希望对你有一定的参考价值。

参考技术A 修改dialog的style
1、新建dialog对象的时候使用带有style构造参数的方法
2、本地style文件新建dialog对象的style,
3、设置outsideCancleable=“true”
参考技术B dialog.setCanceledOnTouchOutside(true);
dialog.setCancelable(true);追问

用Activity做的dialog的效果不是dialog,activity没有setCanceledOnTouchOutside(true)方法

追答

只是样式变成dialog了啊 明白了。背景弄个全透名的图,全屏显示。设置ontouch的时候把activity finish掉。

追问

怎么设置ontouch可以说的具体点吗?这我有点迷糊

追答

findViewById(R.id.xx).setOnTouchListener(new OnTouchListener()

@Override
public boolean onTouch(View v, MotionEvent event)
finish();

return false;

);

本回答被提问者采纳

android 对话框Dialog拦截activity事件通知

在一个activity上面弹出Dialog时候,Dialog拥有页面的事件通知,包括点击,外接等等事件通知。那么有时候这些事件对Dialog来说是没有用的,是给activity使用的。

示例:

这是一个Activity中的dispatchKeyEvent事件,或者外接刷卡机器监听事件。需要activity处理的。

    @Override
    public boolean dispatchKeyEvent(KeyEvent event) 
        if (event.getAction() == KeyEvent.ACTION_DOWN) 
            int keyCode = event.getKeyCode();
            if (keyCode <= 6) 
                return false;
            
            if (mScanGun != null) 
                if (mScanGun.isMaybeScanning(keyCode, event)) 
                    return true;
                
            
        
        return super.dispatchKeyEvent(event);
    

这个时候弹出了一个Dialog进行提示操作之类

    //对话框事件 拦截去掉,给activity
    @Override
    public boolean dispatchKeyEvent(KeyEvent event) 
        if (mContext instanceof Activity)
            ((Activity) mContext).dispatchKeyEvent(event);
        
        if (isShowing())
            dismiss();
        
        return super.dispatchKeyEvent(event);
    

所以这个时候处理就是Dialog还在显示的话,就dismiss(),然后事件往下传递就行。这样下面的activity就能接收到 super.dispatchKeyEvent(event) 事件。

以上是关于android Activity改成dialog样式后 怎么设置点击空白处关闭窗体,如图点击窗体意外的地方关闭窗体的主要内容,如果未能解决你的问题,请参考以下文章

android将activity设置成自定义的Dialog怎么调整大小

Android dialog Activity 使用

android应用Dialog跳转到Activity

安卓怎么把activity做成dialog

Android项目实战:Dialog主题Activity实现自定义对话框效果

android 对话框Dialog拦截activity事件通知