页面数据PagerData

大约 2 分钟

页面数据PagerData

每个Kuikly页面, 都带有由Native侧传递过来的数据, 这份数据在Kuikly中被称为PagerData

如何获取PagerData

Kuikly中,你可以在Pager子类或者组合组件ComposeView子类内获取PagerData

  • Pager子类中获取PagerData
@Page("1")
internal class HelloWorldPage : Pager() {

    ...
    override fun body(): ViewBuilder {
        ...
    }

    override fun created() {
        super.created()
        val pgData = pagerData // 通过pagerData变量获取页面参数
    }
}










 


  • 在组合组件子类中获取PagerData
class TestComposeView : ComposeView<ComposeAttr, ComposeEvent>() {

    ...
    override fun created() {
        super.created()
        val pgData = pagerData // 在组合组件中获取PagerData
    }
}

PagerData里面包含了两类参数

  1. 基础参数: 每个页面默认都带有的参数
  2. 业务扩展参数: 不同的页面,可根据业务诉求,在打开Kuikly页面的时候,由Native侧将业务数据传递给Kuikly页面,然后存放在PagerData类中, 供业务侧使用

PagerData基础参数

PagerData中的基础参数是由Kuikly框架传递的,默认每个页面都含有这些基础参数。

参数描述类型
pageViewWidth页面根View宽度Float
pageViewHeight页面根View高度Float
statusBarHeight状态栏高度Float
deviceWidth屏幕宽度Float
deviceHeight屏幕高度Float
appVersionapp版本号String
isIOS是否为iOS平台Boolean
isIphoneX是否为iphoneX机型Boolean
params存放业务扩展的数据JSONObject
safeAreaInsets安全区域: 被系统界面(如状态栏、导航栏、工具栏或底部 Home 指示器、刘海屏底部边距)遮挡的视图区域EdgeInsets

PagerData业务扩展参数

PagerData的业务扩展参数,是Native侧在打开Kuikly页面时,传递给Kuikly页面的参数,这些扩展参数会被统一存放在PagerData.params字段中。


例如如果Native在打开Kuikly页面的时候,传递了test:1数据,那在Kuikly页面中可以这样获取

internal class HelloWorldPage : Pager() {

    ...
    override fun body(): ViewBuilder {
        ...
    }

    override fun created() {
        super.created()
        val test = pagerData.params.optInt("test") // 获取业务参数
    }
}









 


更好的方式是,新建PagerData的扩展类,然后将业务参数通过扩展的形式封装在PagerData扩展类中

// PagerDataExt.kt

internal val PageData.test: Int
    get() = params.optInt("test")

下一步

在学习了Kuikly的页面数据PagerData概念后, 下一步,我们接着学习Pager生命周期, 了解Pager的生命周期

上次编辑于: