Skip to content

Dialog怎么用 Step6

zhangxin-it edited this page Dec 11, 2019 · 3 revisions

完整Demo:DialogDemo.lua

使用场景

当前业务需要弹窗,说起弹窗需要的操作,无非显示弹窗,弹窗消失,弹窗内添加内容,下面就围绕这几个点来介绍Dialog

初始化Dialog

dialog =  Dialog()
---初始化一个用户填充dialog的线性布局baseView
baseView = LinearLayout(LinearType.VERTICAL)
baseView:width(MeasurementType.MATCH_PARENT):height(MeasurementType.WRAP_CONTENT):marginLeft(40):marginRight(40)
baseView:setGravity(Gravity.CENTER)
baseView:bgColor(Color(255,255,255,1.0))
baseView:cornerRadius(7)
baseView:clipToBounds(true)

---dialog填充
dialog:setContent(baseView)

上面代码可以发现,我们并没有像其他布局一样,在初始化Dialog的同时,来调节他的样式。因为初始化后,整个屏幕其实就是一个Dialog,你可以向其中填充你想要显示的View而填充后还空出的区域就是蒙层了。我们定义了一个baseView来填充Dialog,并设定点击蒙层Dialog自动隐藏。下面我们就介绍一下Dialog还有哪些常用的方法。

Dialog方法

---将dialog隐藏
dialog:dialogDisAppear(function()
print("我隐藏啦,dialog!!!")
end)
---点击屏幕显示dialog
window:onClick(function()
    dialog:show()
end)

上述代码执行后,可发现dialog先被我们隐藏了,我们点击屏幕后展示dialog,除了baseView的其他区域为蒙层,再次点击屏幕后dialog隐藏。下面是一些dialog的方法

cancelable(boolean bool) 点击蒙版是否可取消,默认点击可以取消
void show() 显示弹窗
void dismiss() 取消弹窗
void setContent(View v) 设置内容view
void dialogDisAppear(Callback fun) dialog的消失回调
Clone this wiki locally