关于解决Dialog弹出四周出现margin

今天在做一个需求的时候,需要用dialog弹出底部菜单栏,具体样式就像这样

关于解决Dialog弹出四周出现margin_第1张图片
这是效果图

结果我做出来的效果,虽然我觉得也很好看


关于解决Dialog弹出四周出现margin_第2张图片
这是我做出来的效果

因为确实好久没用过dialog了,忘了很多,找了很多方法,都不行,什么setpadding(0,0,0,0).都没什么用.

后来看到无知的blog才知道什么地方出了问题,真是服了我自己了.


这是之前的代码

builder=newAlertDialog.Builder(activity).create();//得到构造器

Window dialogWindow =builder.getWindow();

builder.getWindow().clearFlags(//解决自定义dialog不能弹出键盘

        WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

这是修正后的代码


builder=newAlertDialog.Builder(activity,R.style.AppTheme).create();//得到构造器

Window dialogWindow =builder.getWindow();

builder.getWindow().clearFlags(//解决自定义dialog不能弹出键盘

WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

能看出来有什么区别么O(∩_∩)O~

没错,就是多加了个R.style.AppTheme.

但是这样还是不行的,接下来公布完整代码哈哈哈哈

private voidshowAlertDialog() {

builder=newAlertDialog.Builder(activity,R.style.AppTheme).create();//得到构造器

Window dialogWindow =builder.getWindow();

builder.getWindow().clearFlags(//解决自定义dialog不能弹出键盘

                               WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

builder.show();

dialogWindow.setContentView(R.layout.dialog_collect_more);

LayoutInflater mInflater = LayoutInflater.from(activity);

View view = mInflater.inflate(R.layout.dialog_collect_more,null);

dialogWindow.setContentView(view);

dialogWindow.setGravity(Gravity.BOTTOM);//显示在顶部

dialogWindow.setWindowAnimations(R.style.dialogstyle);//给dialog添加动画

//获得window窗口的属性

android.view.WindowManager.LayoutParams lp = dialogWindow.getAttributes();

//设置窗口宽度为充满全屏

lp.width= WindowManager.LayoutParams.MATCH_PARENT;

//设置窗口高度为包裹内容

lp.height= WindowManager.LayoutParams.WRAP_CONTENT;

lp.flags= WindowManager.LayoutParams.FLAG_DIM_BEHIND;//就是这个属性导致window后所有的东西都成暗淡

lp.dimAmount=0.5f;//设置对话框的透明程度背景(非布局的透明度)

//将设置好的属性set回去

dialogWindow.setAttributes(lp);

//将自定义布局加载到dialog上

}

很简单吧,哈哈.

为了照顾初学者,我把涉及到的参数全都写出来


这个是动画的style(实在是不知道为什么复制不上来)



关于解决Dialog弹出四周出现margin_第3张图片
这个是弹出的效果


这个是关闭的效果


第一次写文章,有什么不好的大家多多说明,谢谢

对了把给我启发的blog贴出来

这个就是无知博客的那篇文章


你可能感兴趣的:(关于解决Dialog弹出四周出现margin)