在你dialog.show();后面加上WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
lp.width = (int)(display.getWidth()); //设置宽度
dialog.getWindow().setAttributes(lp);

解决方案 »

  1.   

    var params = new LinearLayout.LayoutParams(fill_parent,300dip);
    setContentView(view,params);
      

  2.   

    使用1楼的,发现dialog 还是和屏幕有点边距,怎么解决??
      

  3.   

    在使用1楼的基础上,还要讲dialog的style这样改将原来的  <style name="shareDialog_style" parent="@android:style/Theme.Dialog">改为  <style name="shareDialog_style" parent="@android:style/Theme.Holo.DialogWhenLarge">。同时manifest文件中minSdk要求是11,参考链接http://blog.csdn.net/zmyde2010/article/details/7007174
      

  4.   


    API 8中能实现吗?
      

  5.   


    Window win = dialog.getWindow();
    win.getDecorView().setPadding(0, 0, 0, 0);
    WindowManager.LayoutParams lp = win.getAttributes();
    lp.width = WindowManager.LayoutParams.FILL_PARENT;
    lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
    win.setAttributes(lp);
    因为我发现dialog 默认的样式@android:style/Theme.Dialog 对应的style 有pading属性,所以
    win.getDecorView().setPadding(0, 0, 0, 0); 就能够水平占满了如果用11楼的指定dialog的样式那就有API 级别限制了,这样不好