具体实现代码:
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方法中:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)