自定义对话框两边有间距问题

一般我们自定义对话框,都会设置如下的style属性:

    

但是我们会发现一个问题,左右两边总会有一些间距。明明布局都设置成了match_parent。而且,在Graphical Layout那里显示也是正常的。不过一运行,就出现问题了。
自定义对话框两边有间距问题_第1张图片

问题图片:
自定义对话框两边有间距问题_第2张图片

折腾了一段时间,才发现,原来是这句出了问题

<style name="MyDialogStyleBottom" parent="android:Theme.Dialog">

在android:Theme.Dialog里,我发现了一段代码:

        <item name="listPreferredItemPaddingLeft">10dipitem>
        <item name="listPreferredItemPaddingRight">10dipitem>
        <item name="listPreferredItemPaddingStart">10dipitem>
        <item name="listPreferredItemPaddingEnd">10dipitem>

原来问题就出在这里。Theme.Dialog里默认设定了padding=10dip,而且貌似还是将布局自动居中的。然后,我就解决问题了:

    @SuppressWarnings("deprecation")
    private void initWindow() {
        WindowManager manager = getWindowManager();
        Display display = manager.getDefaultDisplay();
        android.view.WindowManager.LayoutParams lp = getWindow()
                .getAttributes();
        lp.gravity = Gravity.BOTTOM;
        lp.width = display.getWidth() * 1;
        getWindow().setAttributes(lp);
    }

通过在java文件里,对布局进行宽度的限制以及布局的设定。然后,就OK了!

你可能感兴趣的:(android)