window 类
继承 View
特定的全局视图变量,作为当前lua界面的根视图
在单个lua虚拟机中全局唯一,作为根布局,用来承载所有的子视图。 window的生命周期方法调用顺序为: 1.sizeChanged 2.viewAppear 3.viewDisappear 4.onDestroy
@note 不可修改该全局视图变量。
⚠️由于Android布局系统原因,建议不要使用绝对值进行相关布局,而使用相对布局(Match Parent, Wrap Content, margin, Gravity)。大多数情况下,需要使用绝对值的布局可以被相对布局代替,比如需要在距离屏幕底部100的位置有个按钮,可使用:Gravity.Bottom加marginBottom来实现。 如果一定需要获取屏幕高度,并根据此高度布局,使用window:height()获取高度,并监听window:sizeChanged(function),在屏幕尺寸改变时,改变相应视图
变量
_priveta_class_name : string
name : string
方法
viewAppear
设置页面显示时回调
该方法会在页面进入时调用,当该页面为APP展示页面时,APP切前后台也会触发。
回调格式:
```
function()
end
```
@note 建议写在lua代码的最后,这样所有的调用方法都已加载
参数
- callback : function()
返回值
- : window
viewDisappear
设置页面隐藏时回调
该方法会在页面退出时调用,当该页面为APP展示页面时,APP切前后台也会触发。
回调格式:
```
function()
end
```
@note 建议写在lua代码的最后,这样所有的调用方法都已加载
参数
- callback : function()
返回值
- : window
sizeChanged
设置页面宽或高变化时的回调
回调格式:
```
function(number w,number h)
---w:页面宽度
---h:页面高度
end
```
参数
返回值
- : window
onDestroy
设置页面销毁前的回调
当业务需要在业务销毁前处理某些事务的时候,可以使用该方法设置回调。
回调格式:
```
function()
end
```
参数
- callback : function()
返回值
- : window
getExtra
获取在原生业务中为lua设置的拓展参数
该方法可用的前提是在唤起lua业务前,调用lua instance的setExtraData方法将业务需要的拓展数据赋值给window,供lua业务在执行时获取
返回值
- 返回一个封装有各类参数的字典 : Map
getLuaVersion
获取当前加载的lua业务的版本号,版本号0为预埋包
获取lua业务版本的方法,跟SDK没有关系,只跟业务的定义有关
@note 需要在加载lua处去给window赋值,调用instance的setLuaVersion方法赋值。
返回值
- : string
getLuaSource
获取当前加载的lua文件来源
获取当前加载的lua文件来源,通过URL加载的返回URL,通过lua文件加载的返回文件名
返回值
- 文件来源 : string
keyboardShowing
设置监听键盘的展示和隐藏
该方法监听键盘的状态,展示或隐藏通过返回值标记,并且提供键盘高度以供业务方处理。
回调格式:
```
function(boolean isShowing,number keyboardHeight)
---isShowing:展示or隐藏
---keyBoardHeight:键盘高度,隐藏时为0
end
```
参数
- callback : function(isShowing|keyboardHeight)
返回值
- : window
i_keyBoardFrameChangeCallback
键盘frame改变回调
该方法监听切换键盘(第三方键盘或是系统键盘)的高度变化
回调格式:
```
function(number oldHeight,number newHeight)
---oldHeight:变化前键盘高度
---newHeight:变化后键盘高度
end
```
@note ios支持,android空实现
参数
返回值
- : window
setPageColor
设置window的背景颜色
该方法是来设置window背景颜色
参数
- pageColor : Color 需要设置的页面颜色
返回值
- : window
statusBarHeight
获取电池栏(状态栏)高度
获取电池栏(状态栏)高度,两端都返回实际高度,在iOS端当隐藏状态栏时,返回0,此时需要结合需求,将状态栏展示后获取高度
@note 建议在非全屏,即展示状态栏的情况下使用,否则会返回0
返回值
- : number
navBarHeight
获取导航条高度
获取导航条高度,两端都返回默认导航条高度
返回值
- : number
tabBarHeight
获取tab bar高度
获取tab bar高度,android返回0,iOS返回实际高度
@note 在Android和iOS两端是不一样的
返回值
- : number
homeBarHeight
获取home虚拟按键高度
获取home虚拟按键高度,Android返回虚拟按键高度(若有),iOS返回TabBar高度
@note 建议在非全屏,即有虚拟按键时,使用该方法最为准确
返回值
- : number
backKeyPressed
设置返回键监听方法
安卓中 Activity 或ViewGroup 中可用,Fragment中还不行
回调格式:
```
function()
end
```
@note 仅Android有效,IOS空实现 安卓原生端需要做如下处理: 1) Activity或ViewGroup中此方法可生效,Fragment中暂时还不会生效; 2) 在显示LuaView的Activity中 dispatchKeyEvent() 方法添加如下代码: if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() != KeyEvent.ACTION_UP) { MLSInstance.dispatchKeyEvent(event);}
参数
- callback : function()
返回值
- : window
getStatusBarStyle
获取状态栏颜色样式
返回值
- StatusBarStyle.default : StatusBarStyle or StatusBarStyle StatusBarStyle.Light
setStatusBarStyle
设置状态栏样式
在viewAppear中设置,需要在viewDisappear中设置回原始样式
@note 记得设置后在视图消失时置回设置前的样式
参数
- style : StatusBarStyle StatusBarStyle.Default or StatusBarStyle.Light
返回值
- : window
backKeyEnabled
是否执行返回到上一个页面的操作,默认值为true,当不传递参数时,是获取是否可以执行返回键操作的boolean值
@note 安卓支持,ios空实现
参数
- isEnable : boolean 是否执行返回到上一个页面的操作,默认值为true
返回值
- : window