QuickDialog使用详解-快速创建配置Diaog

QuickDialog是什么东西呢,顾名思义快速创建配置Diaog,方便使用Dialog。

那此组件有什么特点:

 创建Dialog使用链式配置方式,使用方便,代码简洁,集成QuickViewHolder,可快速对dialog数据进行设置,无需再findviewById对View进行单个设置

接下来我们看一下正常写法:

1、先定义Dialog与Layout中的View

    var dialog: Dialog? = null
    lateinit var titleTv: TextView
    lateinit var leftTv: TextView
    lateinit var rightTv: TextView

2、实例化Dialog并显示

fun showDialog(title: String, leftTxt: String, rightTxt: String) {
        if (dialog == null) {
            val itemView = LayoutInflater.from(this).inflate(R.layout.dialog_test, null)
            titleTv = findViewById(R.id.titleTv)
            leftTv = findViewById(R.id.leftTv)
            rightTv = findViewById(R.id.rightTv)
            dialog = Dialog(this, R.style.AppTheme)
            dialog!!.setContentView(itemView)
            dialog!!.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
            dialog!!.setCanceledOnTouchOutside(false)
//            dialog!!.window?.setLayout(500, 500)
        }
        titleTv.text = title
        leftTv.text = leftTxt
        rightTv.text = rightTxt
        if (!dialog!!.isShowing)
            dialog!!.show()
    }

这种方法,每次都需要重新定义Dialog,许多重复代码,而且还需要定义一堆Dialog中的View,稍显冗余麻烦。我们如何优化呢

那么,请看下QuickASync的写法

QuickDialog.Builder(this@MainActivity).setLayout(R.layout.dialog_test).show()
                                .setText(R.id.leftTv, "取消", View.OnClickListener {
                                    QuickToast.showToastDefault("点击了取消")
                                    QuickDialog.dismiss()
                                }).setText(R.id.rightTv, "确定", View.OnClickListener {
                                    QuickToast.showToastDefault("点击了确定")
                                    QuickDialog.dismiss()
                                })

直接通过链式调用配置了text和OnClickListener,只要屏幕够大,直接一行搞定。

并且组件缓存了上一个Dialog,只要context与layout没有发生变化不会重复创建,节省内存。

当然,实际业务中肯定不会全是这么简单使用。

1、页面中使用多个dialog,怎么使用呢?

QuickDialog.Builder(this).setLayout(R.layout.dialog_test).create()

调用create方法创建一个Dialog,保存起来即可。

2、如果需要更灵活的设置View呢?

QuickDialog.Builder(this).setLayout(R.layout.dialog_test).build().viewHolder()

只需要通过build获取到viewHolder实例,保存起来即可。

使用起来还是很灵活方便滴

推荐使用gradle接入

implementation 'org.quick.android:quick-component:latest.release'

统一初始化放在Application中:

QuickAndroid.init(this)

 

源码地址:https://github.com/SpringSmell/quick-component

好了,到这里就结束,好东西那当然要分享了,马上告诉小伙伴我发现了一个很酷的东西吧

QuickAndroid系列全家桶

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值