android设置dialog在第几层显示

android设置dialog在第几层显示,第1张

android中dialog都是d出对话框,没有第几层这个概念,只有dialog有级别。

具体实现代码:

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()

在日常开发中,总是会遇到各种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方法中:


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

原文地址: https://outofmemory.cn/tougao/10957001.html

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

发表评论

登录后才能评论

评论列表(0条)

保存