Android Dialog 设置Margin方式总结

Android Dialog 设置Margin方式总结,第1张

在日常开发中,总是会遇到各种Dialog的使用,调整根据UI设计的不同,会经常调整Dialog在屏幕中的位置,这篇文章主要介绍,在使用 DialogFragment 时设置Margin的几种方式

如下是最后实现的效果

设置两边margin效果:

设置顶部margin效果:

全屏的Dialog设置顶部Margin:

这个比较容易,主要就是设置一个高度wrap_content,宽度match_parent的dialog,然后在dialog的布局中设置margin就可以了。

如下是xml文件:

然后在DialogFragment的onResume里对Window做一些处理:

这种情况margin可以通过 WindowManager.LayoutParams 的 verticalMargin 属性来实现。 verticalMargin 和xml里面设置的layout_margin不一样, verticalMargin 是通过设置一个0-1的float变量,来标识margin在屏幕中的占比。

如下是在DialogFragment的onResume中的处理:

xml文件(和1的类似,没有什么特别):

这里如果使用2中的方法,没有任何效果。这里使用另外一种方式实现-- insetDrawable 。

这里的实现是在xml里面写一个 <inset>:

在DialogFragment的onResume方法中:

AndroidDialog示例代码:

1.创建象框

AlertDialog.Builder builder = new Builder(context)

builder.setTitle("请输入")//设置框标题

builder.setIcon(android.R.drawable.btn_star)//设置框标题前图标

2.创建EditText输入框

final EditText edit = new EditText(context)

3.输入框赋值给Dialog,并增加确定取消按键

builder.setView(edit)

builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(context, "输入: " + edit.getText().toString(), Toast.LENGTH_SHORT).show()

}

})

builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(context, "点取消", Toast.LENGTH_SHORT).show()

}

})

4.设置用api并showd

builder.setCancelable(true)//设置按钮否按返键取消,false则取消

AlertDialog dialog = builder.create()//创建框

dialog.setCanceledOnTouchOutside(true)//设置d框失焦点否隐藏,即点击屏蔽其否隐藏

dialog.show()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11264223.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存