自定义Dialog

自定义dialog在项目中基本都会使用,要实现在定义dialog显示效果方式不止一种,例如1.popupwindrow:可以实现,要实现dialog显示方式只需要添加相应的代码即可。

(1)常规使用继承popupwindrow

(2)设置消失监听器

setOnDismissListener(new OnDismissListener() {

@Override

public void onDismiss() {

backgroundAlpha(1f);

}

});

(3)实现backgroundAlpha方法

/**

* 设置添加屏幕的背景透明度

* @param bgAlpha

*/

public void backgroundAlpha(float bgAlpha) {

WindowManager.LayoutParams lp = context.getWindow().getAttributes();

lp.alpha = bgAlpha; //0.0-1.0

context.getWindow().setAttributes(lp);

}

产生的问题:(透明度问题):如果用这种方式添加阴影会造成页面紊乱的问题(我碰到的问题是在popupwindrow显示页会在popupwindrow以外页面显示上个Activity的页面)

产生的原因:为了解决Activity启动黑屏在styles文件里AppTheme添加android:windowIsTranslucent = true的属性

2.自定义DialogActivity可以实现,只不过在使用的过程中牵涉到Activity生命周期的问题,如果代码中没有关于生命周期的逻辑可以大胆使用

3.自定义dialog(常规用法)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容