嘿,今天的你过的还好吗
今天用原生AlertDialog做退出时候发现一个问题,就是弹出窗口都靠右,开始以为是手机问题,后来换手机也是一样
然后就看了一下,现在默认都是Gravity.RIGTH;
所以窗口会靠右侧.然后改良了一下
注意配置要在 dialog.show();之后,不然有可能不生效
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("退出登陆");
builder.setMessage("你确定要退出吗?");
builder.setCancelable(false);
builder.setNeutralButton("取消", null);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
SPUtils.getInstance("userinfo").clear();
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(intent);
MainActivity.this.finish();
}
});
AlertDialog dialog = builder.create();
dialog.show();
//放在show()之后,不然有些属性是没有效果的,比如height和width
Window dialogWindow = dialog.getWindow();
WindowManager m = getWindowManager();
Display d = m.getDefaultDisplay(); // 获取屏幕宽、高
WindowManager.LayoutParams p = dialogWindow.getAttributes(); // 获取对话框当前的参数值
// 设置宽度
p.width = (int) (d.getWidth() * 0.95); // 宽度设置为屏幕的0.95
p.gravity = Gravity.CENTER;//设置位置
//p.alpha = 0.8f;//设置透明度
dialogWindow.setAttributes(p);
网友评论