快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

关于Android对话框宽度无法铺满全屏的问题-创新互联

之前做自定义对话框需要宽度铺满全屏时,基本是这样操作的.

创新互联建站主营武清网站建设的网络公司,主营网站建设方案,app软件开发,武清h5成都微信小程序搭建,武清网站营销推广欢迎武清等地区企业咨询
AlertDialog dialog = new AlertDialog.Builder(context).create();
        dialog.show();
        Window window = dialog.getWindow();
        WindowManager.LayoutParams lp = window.getAttributes();
        lp.width = WindowManager.LayoutParams.MATCH_PARENT;
        window.setAttributes(lp);
        window.setWindowAnimations(R.style.dialogWindowAnim);//动画
        window.setContentView(R.layout.layout_mine_bank_del);//布局
        window.setGravity(Gravity.CENTER);

以前一直没出过问题,一直到这次使用了

"AppTheme.NoActionBar"

主题,在5.0以上手机发现宽度无法铺满了;如果将位置设置底部

window.setGravity(Gravity.BOTTOM);

会出现底部也有一段距离.

很郁闷,试了其他方式:

window.getDecorView().setPadding(0, 0, 0, 0);

或者

window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

或者

Window window = getWindow();
 WindowManager.LayoutParams wlp = window.getAttributes();
Display d = window.getWindowManager().getDefaultDisplay();//获取屏幕宽
wlp.width = (int) (d.getWidth());//宽度按屏幕大小的百分比设置 ;d.getWidth()这个方法已废弃
 wlp.gravity = Gravity.CENTER;
 window.setAttributes(wlp);

但是都一直无法成功.直到今天无意中在一个博客看到这句才解决问题

window.setBackgroundDrawableResource(android.R.color.transparent);

把这句加上去就没问题了,哈哈!

感谢博主 http://blog.csdn.net/bear_huangzhen/article/details/51683758

顺便记一下,刚才那样自定义对话框需要先

dialog.show();

才行,不然会出错的.另一种通过继承去自定义的则是最后面才show

public class MyDialog extends AlertDialog{
    public MyDialog(Context context) {
       super(context);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       this.setContentView(R.layout.my_dialog);
    }
}

这种使用也比较简单,灵活度也好

final MyDialog myDialog = new MyDialog(context);
myDialog.setMsg("测试显示自定义对话框");
myDialog.setOnPositiveListener("知道了",new View.OnClickListener() {
    @Override
    public void onClick(View v) {
       myDialog.cancel();
    }
});
myDialog.show();

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:关于Android对话框宽度无法铺满全屏的问题-创新互联
本文地址:http://6mz.cn/article/cddgcc.html

其他资讯