最近在开发Android过程中遇到这么个纠结的问题。之前在Android5.1.1以上的版本中测试通过了另一种办法,但是并没有什么卵用,因为当某一天我心血来潮在Android4.4.4的机子上跑了一下之后就蛋疼了。
于是没办法,我的App是兼容到19+的,所以必须要解决这个问题。
然后就开始了跋山涉水的百度,试过大概6+个博主信誓旦旦保证没问题的方法,但是,我依然一脸懵逼。我试图翻阅底层的代码来找解决办法,但是,我看不懂啊!!!!
大概罗列一下我试过的方法,以便各位排除用,当然推荐直接用我解决问题的办法,一步到位。
然并卵的方法有:

  1. 修改Style
  2. 重设window尺寸
  3. setView里面加四维参数的
  4. setCanceledOnTouchOutside
  5. setPadding
  6. ……

在经历过薅掉头发的绝望之后偶然看到有使用Dialog代替AlertDialog的方法,经过测试,在新老版本的SDK里面都可以用。
大概用法如下:

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
View view = LayoutInflater.from(context).inflate(R.layout.layout_test, null);
Dialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
alertDialog.setContentView(view);

这里面需要注意的是:setContentView这个方法一定要在show这个方法后面使用,不然就会崩溃。
这个问题我解决了大概4个小时,所以,我认为有必要记录一下。
以上。