Blog of CodeJELLOW’S ENGINEERING NOTES
← 返回文章

Android Compose UI组件继承

组件继承其实就是,你之前写了一个组件A,后来想在A组件的基础上拓展一些功能,但又不想把A复制一份,所以继承了A并提供更多功能。

组件继承其实就是,你之前写了一个组件A,后来想在A组件的基础上拓展一些功能,但又不想把A复制一份,所以继承了A并提供更多功能。

举例

比如在项目里写了左边这个组件

image-20221027095517269

但是后来在别的地方又有类似的布局,这里就可以用继承

image-20221027095618565

实现方法

利用kotlin中函数可以作为参数传递的特性,将子组件传递进父组件,再在父组件中调用即可

下面给了父组件的参数,compoent参数就是接收函数,这里赋值初值为null表示在父组件使用时可以不传递此参数(就是更简洁一些)

TEXT
@Composablefun ProfileCard(    profile: ProfileEntity,    component: @Composable (() -> Unit)? = null,)

然后在你想放置子组件的地方使用

TEXT
component?.invoke()

这样子组件就会在父组件的列或者行中调用了

语法糖

注意kotlin有一个语法糖:当函数作为参数调用时,函数可以放在括号外面的大括号内,也就是你可以这样调用父函数:

TEXT
ProfileCard(profile = profile) {    Text(        modifier = Modifier.padding(top = 25.dp),        text = stringResource(R.string.测试成绩),        color = TrolleyColors.TextColor,        style = TrolleyStyles.BodyLarge,    ) }

简单的小技巧get

通过 RSS 订阅更新 →