赞
踩
val dialogView:View = LayoutInflater.from(activity).inflate(R.layout.dialog_add_task,null,false)
val dialog = activity?.let { AlertDialog.Builder(it,R.style.myCorDialog) }//设置样式
val dialogBox = dialog?.setView(dialogView)?.create() //添加任务窗口
dialogBox?.window?.setGravity(Gravity.BOTTOM) //设置对话框弹出的位置
dialogBox?.window?.attributes?.y = 160 // 距离底部160
dialogBox?.show() //打开对话框
dialogBox?.dismiss() //关闭对话框
dialogView.findViewById<ImageButton>(R.id.setTime).setOnClickListener{ //事件监听器
//方法体
}
第一行
LayoutInflater.from(context).inflate(int resource, @Nullable ViewGroup root, boolean attachToRoot)
context:上下文
resource:对话框布局
root:资源需要被添加的地方,一般为null
attachToRoot:是否添加到root,一般为false
第二行
activity?.let { AlertDialog.Builder(it,R.style.myCorDialog) }
R.style.myCorDialog为自定义的样式,下面的例子为添加圆角外框
如果没有要添加的style可以直接写activity?.let { AlertDialog.Builder(it) }
<style name="myCorDialog" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/dialog_corner_bg</item> <!-- 背景透明 -->
<item name="android:windowNoTitle">true</item> <!-- 没有标题 -->
<item name="android:backgroundDimEnabled">true</item> <!-- 背景模糊 -->
</style>
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <solid android:color="@color/colorAccent" /> <corners android:radius="10dp" /> <!--弧度 --> </shape> </item> <item android:top="8dp" android:right="8dp" android:left="8dp" android:bottom="8dp"> <!--边框宽度 --> <shape android:shape="rectangle"> <solid android:color="@color/white"/> <corners android:radius="6dp" /> <padding android:bottom="8dp" android:left="8dp" android:right="8dp" android:top="8dp"/> </shape> </item> </layer-list>
第四行
对话框弹出的位置设置:Gravity.TOP,Gravity.CENTER ,Gravity.BOTTEM
对话框事件监听器
dialogView.findViewById<ImageButton>(R.id.setTime).setOnClickListener{
//方法体
}
相关链接:
https://blog.csdn.net/Naide_S/article/details/80091191 关于dialog的显示位置设置
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。