当前位置:   article > 正文

android自定义对话框_android 自定义对话框

android 自定义对话框
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{ //事件监听器
	//方法体
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

第一行

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>
  • 1
  • 2
  • 3
  • 4
  • 5
<?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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

第四行

对话框弹出的位置设置:Gravity.TOP,Gravity.CENTER ,Gravity.BOTTEM

对话框事件监听器

dialogView.findViewById<ImageButton>(R.id.setTime).setOnClickListener{
	//方法体
}
  • 1
  • 2
  • 3

相关链接:

https://blog.csdn.net/Naide_S/article/details/80091191 关于dialog的显示位置设置

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/318488
推荐阅读
相关标签
  

闽ICP备14008679号