Android Dialog-Dialog无法充满横屏且下方有间隔
自定义一个Dialog,写完布局后运行,发现Dialog无法充满屏幕,就像下边这样:

代码大致如下:
Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_layout);
Window dialogWindow = dialog.getWindow();
dialogWindow.setGravity(Gravity.BOTTOM);
dialogWindow.getDecorView().setPadding(0, 0, 0, 0);
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
lp.width = WindowManager.LayoutParams.FILL_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
dialogWindow.setAttributes(lp);
dialog.show();
分析
这个问题其实是因为背景的.9图四周 边距太宽的原因,和宽度设置无关,事实上是填满了的,只是四周是透明的而已。
打开源码中父类Dialog的style和theme,发现background属性:

切换到图片所在目录:

发现它是一张.9图片
解决方法1:
自定义style,继承Theme.Dialog,重写背景属性
<style name="dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/white</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
然后代码引用该style:
Dialog dialog = new Dialog(this,R.style.dialog);
解决方法2:
在自定义dialog中手动用代码设置
dialogWindow.setBackgroundDrawableResource(android.R.color.white);
Android Dialog-Dialog无法充满横屏且下方有间隔的更多相关文章
- android.app.Dialog(23)里window的那些事(坑)
不要使用theme去配置Dialog的gravity 因为如今手机的尺寸比較大(相对于智能机開始的3.5in.4.0in),而Dialog默认都是显示在屏幕中心的位置,用户触摸起来多不便. 所以大多数 ...
- Android PopupWindow Dialog 关于 is your activity running 崩溃详解
Android PopupWindow Dialog 关于 is your activity running 崩溃详解 [TOC] 起因 对于 PopupWindow Dialog 需要 Activi ...
- Android 自定义Dialog类,并在Activity中实现按钮监听。
实际开发中,经常会用到Dialog,比如退出时候会弹出是否退出,或者还有一些编辑框也会用Dialog实现,效果图如下: 开发中遇到的问题无非在于如果在Activity中监听这个Dialog中实现的 ...
- Android 对话框(Dialog)大全 建立你自己的对话框
Android 对话框(Dialog)大全 建立你自己的对话框 原文地址: http://www.cnblogs.com/salam/archive/2010/11/15/1877512.html A ...
- Android自定义Dialog及其布局
实际项目开发中默认的Dialog样式无法满足需求,需要自定义Dialog及其布局,并响应布局中控件的事件. 上效果图: 自定义Dialog,LogoutDialog: 要将自定义布局传入构造函数中, ...
- Android自定义Dialog
Android开发过程中,常常会遇到一些需求场景——在界面上弹出一个弹框,对用户进行提醒并让用户进行某些选择性的操作, 如退出登录时的弹窗,让用户选择“退出”还是“取消”等操作. Android系统提 ...
- Android中Dialog
在Android中,Dialog是一个非常重要的UI, 它可以方便的给用户提示,用最简洁的方式向用户展示信息, 以下的图片是Dialog的一个整体架构,通过它,可以总体对Dialog有一个很清晰的认识 ...
- android之dialog
先编写activity_main.xml文件 代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res ...
- Android之Dialog详解
Android中的对话框形式大致可分为五种:分别是一般对话框形式,列表对话框形式,单选按钮对话框,多选按钮对话框,自定义对话框. 在实际开发中,用系统的对话框会很少,因为太丑了,美工不愿意,多是使用自 ...
随机推荐
- Zuul Timeouts
19.13 Zuul Timeouts 19.13.1 Service Discovery Configuration If Zuul is using service discovery there ...
- ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
[root@ldaptest openldap]# ldapadd -x -D "cn=admin,dc=ultrapower,dc=com" -W -f /tmp/base.ld ...
- javascript判断是否按回车键
function enterHandler(event){ var keyCode = event.keyCode ? event.keyCode : event.which ? event.whic ...
- NPOI 中的公式列的值的获取
方法1 NPOI 中,对 sheet 对象设置 ForceFormulaRecalculation = true,即可实现自动将 Excel 的公式计算出来. 方法2 循环 Excel 的行.列,取出 ...
- 微信小程序支付(java后端)
第一步 进入小程序,下单,请求下单支付,调用小程序登录API来获取Openid(https://mp.weixin.qq.com/debug/w ... .html#wxloginobject), ...
- 【onethink1.0】HTML模板获取前台和后台当前登录用户名
1.版本:onethink1.0:位置:HTML模板 前台:{:get_username()} 后台:{:session('user_auth.username')}
- 常用Raspberry Pi周边传感器的使用教程(转)
转:http://bbs.xiaomi.cn/thread-7797152-1-1.html 在Raspberry Pi 的使用和开发过程中,你可能时常需要一些硬件和传感器等来支持你的开发工作,例如, ...
- 子类化GetOpenFileName/GetSaveFileName, 以及钩子函数OFNHookProc的使用的简要说明
昨天, 群里面有一个人问起: 要怎么让"文件打开对话框"居中显示, 有人说子类. 而我告诉他的方法是用钩子函数OFNHookProc, 不知道这是不是所谓的子类?相信看了我今天这篇 ...
- 'Agent XPs' component is turned off as part of the security configuration for this server
To turn on Agent XP's by running this script: sp_configure 'show advanced options', 1; Go RECONFIGUR ...
- 【转】Scheme 编程环境的设置
Scheme 编程环境的设置 介绍了这么久的 Scheme,却没有讲过如何配置一个高效的 Scheme 的编程环境.有些人开始学习 Scheme 的时候感觉无从下手,所以今天讲一下它的配置. Sche ...