我的代码笔记(1)

       今天说一下我在安卓项目遇到的一个小问题,这个问题就是自定义dialog显示宽度问题,我们都知道自定义dialog的宽度不会铺满屏幕,而是会有margin,就是两边都会留有一定的空间,但是今天当我在写自定义dialog布局的时候发现dialog的宽度始终非常窄,两边的margin非常大,我就开始纳闷了,找起了问题所在。

       起初我先是以为在活动中代码写错了,我通过设置WindowManager设置了布局的宽度,结果发现是可以改变刚刚的宽度,但是我并不想设置具体的宽度,然后我又检查了一遍布局文件,我明明写的布局在xml中是match_parent,我就奇怪了,明明设置布局是占满的,怎么在dialog后宽度很窄呢,于是我就将布局改为了wrap_content,结果惊讶的发现,原来我弹框的范围就是wrap_content的宽度,怎么会这样?为什么设置了占满变成了wrap_content,找了很久才发现原来我的根布局是线性布局,里面我设置了占满父布局,结果父布局也不会铺满,仍然是wrap_content的一个状态,于是我将根布局改为了相对布局,里面嵌套线性布局,问题解决!

原因原来是一个布局如果只用线性布局作为父布局和子布局是无法占满的,即使设置了match_parent也是不能占满,我们只要把根布局线性布局更换成另一个布局或根布局线性布局里嵌套一个占满的布局(不能是控件和线性布局)即可,这样问题就解决,哎,真的太粗心大意了

你可能感兴趣的:(我的代码笔记(1))