Code Bye

android 如何让自定义dialog的宽度充满整个屏幕?

 

android 如何让自定义dialog的宽度跟屏幕的宽度一样。求大神们指教下。。

40分
在你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 楼  的回复:

在你dialog.show();后面加上

WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
lp……

不行啊,这样设置了还是没有全屏,即使把lp单独拿出来设置到很大也没用

var params = new LinearLayout.LayoutParams(fill_parent,300dip);
setContentView(view,params);
请问问题是怎么解决的
引用 2 楼 husong_1 的回复:

谢谢了,搞定了!

请问是怎么解决的?

使用1楼的,发现dialog 还是和屏幕有点边距,怎么解决??
在使用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
引用 10 楼 QGlaunch 的回复:

在使用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

API 8中能实现吗?

非常感谢一楼
1L 正确答案
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 级别限制了,这样不好

14楼的正解,已搞定

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明android 如何让自定义dialog的宽度充满整个屏幕?