美文网首页
Dialog 自定义布局

Dialog 自定义布局

作者: 折剑游侠 | 来源:发表于2020-04-15 17:13 被阅读0次

写个底部弹窗

继承Dialog,初始化时调用setContentView()设置布局。

class CustomDialog(context: Context) : Dialog(context, R.style.bottom_dialog) {
    init {
        setContentView(R.layout.dialog_custom)

        setBottom()
    }
}

DialogKtx

fun Dialog.setCommon() {
    window?.run {
        val params = attributes
        params.gravity = Gravity.CENTER
        attributes = params
    }
}

fun Dialog.setBottom() {
    window?.run {
        decorView.setPadding(0, 0, 0, 0)
        val params = attributes
        params.height = ViewGroup.LayoutParams.WRAP_CONTENT
        params.width = ViewGroup.LayoutParams.MATCH_PARENT
        params.gravity = Gravity.BOTTOM
        attributes = params
    }
}

style.xml

    <!-- CommonDialog -->
    <style name="common_dialog" parent="@android:style/Theme.Dialog">
        <!-- 无边框 -->
        <item name="android:windowFrame">@null</item>
        <!-- 是否浮现在activity之上 -->
        <item name="android:windowIsFloating">true</item>
        <!-- 是否透明 -->
        <item name="android:windowIsTranslucent">true</item>
        <!-- 是否去除标题 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 背景 -->
        <item name="android:background">@android:color/transparent</item>
        <!-- 背景透明 -->
        <item name="android:windowBackground">@android:color/transparent</item>
        <!-- 是否模糊 -->
        <item name="android:backgroundDimEnabled">true</item>
        <!-- 遮罩层 -->
        <item name="android:backgroundDimAmount">0.5</item>
    </style>

    <!-- BottomDialog动画 -->
    <style name="bottom_animation" parent="android:Animation">
        <item name="android:windowEnterAnimation">@anim/dialog_enter</item>
        <item name="android:windowExitAnimation">@anim/dialog_exit</item>
    </style>

    <!-- BottomDialog -->
    <style name="bottom_dialog" parent="@style/common_dialog">
        <item name="android:windowAnimationStyle">@style/bottom_animation</item>
    </style>

dialog_enter.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:duration="300"
        android:fromYDelta="100%"
        android:toYDelta="0%" />
</set>

dialog_exit.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:duration="300"
        android:fromYDelta="0%"
        android:toYDelta="100%" />
</set>

相关文章

  • 自定义Dialog

    自定义Dialog的主题 自定义Dialog的布局文件 继承Dialog 并在onCreate方法中将布局设置给D...

  • Android_自定义Dialog底部弹出动画

    效果图如下 点击Button调用代码 Dialog的自定义布局 Dialog的自定义布局Share样式,drawa...

  • Android圆角对话框Dialog

    需求:模仿iOS样式Dialog对话框。 自定义Dialog 核心代码: Dialog样式: Dialog布局文件...

  • 实现图片Dialog中带ViewPager

    效果图 实现思路 自定义Dialog,为Dialog添加自定义布局,自定义PagerAdapter以及PageTr...

  • 自定义分享dialog

    自定义dialog布局 布局内容adapter 设置圆角 自定义圆角view 使用 自定义属性

  • 自定义Dialog

    仿IOS自定义的Dialog: 1、Util帮助类创建dialog 2、布局文件 :loading_dialog....

  • 自定义progressdialog

    1:继承Dialog,加载布局 2:布局设置 3:style设置,透明以后才可以自定义dialog大小 4:应用

  • Android 让Dialog实现背景透明

    1、实现自定义Dialog 布局 dialog_main_sign.xml 2、代码 注意: dialo...

  • 自定义Dialog

    自定义Dialog可以设置两个自定义布局 自定义标题布局setCustomTitle(),方法参数为View类对象...

  • 自定义Dialog

    自定义Dialog类 样式 布局 window动画 enter exit

网友评论

      本文标题:Dialog 自定义布局

      本文链接:https://www.haomeiwen.com/subject/uxxhvhtx.html