-
Notifications
You must be signed in to change notification settings - Fork 208
Dialog怎么用 Step6
xuwhale6 edited this page Nov 29, 2019
·
3 revisions
当前业务需要弹窗,说起弹窗需要的操作,无非显示弹窗,弹窗消失,弹窗内添加内容,下面就围绕这几个点来介绍Dialog
dialog = Dialog()
---定义一个view用来填充dialog 填充后的其他区域就是蒙层
baseView = View():width(MeasurementType.MATCH_PARENT)
:height(MeasurementType.WRAP_CONTENT)
:setGravity(Gravity.CENTER)
:bgColor(Color(255,255,255,1.0))
---设置点击蒙层dialog会消失
dialog:cancelable(true)
---用baseView填充dialog
dialog:setContent(baseView)
上面代码可以发现,我们并没有像其他布局一样,在初始化Dialog的同时,来调节他的样式。因为初始化后,整个屏幕其实就是一个Dialog,你可以向其中填充你想要显示的View而填充后还空出的区域就是蒙层了。我们定义了一个baseView来填充Dialog,并设定点击蒙层Dialog自动隐藏。下面我们就介绍一下Dialog还有哪些常用的方法。
local wh = window:height()
local ww = window:width()
---将dialog隐藏
dialog:dialogDisAppear(function()
print("我隐藏啦,dialog!!!")
end)
---定义一个view用来点击
local clickView = View()
:height(200)
:width(200)
:bgColor(Color(25,66,119,1))
:setGravity(Gravity.CENTER_VERTICAL)
---点击后显示dialog
clickView:onClick(function()
dialog:show()
end)
window:addView(clickView)
---定义一个点击后关闭dialog的view
cancelView = View():width(50):height(50):bgColor(Color(238,129,182,1))
:marginLeft(50):marginTop(50)
---点击关闭
cancelView:onClick(function ()
dialog:dismiss()
end)
baseView:addView(cancelView)
上述代码执行后,可发现dialog先被我们隐藏了,我们点击蓝色View后展示dialog,除了baseView的其他区域为蒙层,点击后dialog隐藏。点击红色的cancelView,dialog隐藏。下面是一些dialog的方法
cancelable(boolean bool) | 点击蒙版是否可取消,默认点击可以取消 |
void show() | 显示弹窗 |
void dismiss() | 取消弹窗 |
void setContent(View v) | 设置内容view |
void dialogDisAppear(Callback fun) | dialog的消失回调 |