当前位置:网站首页>Kotlin Compose 自定义 CompositionLocalProvider CompositionLocal
Kotlin Compose 自定义 CompositionLocalProvider CompositionLocal
2022-06-27 03:36:00 【安果移不动】
效果

还是通过隐式传参来修改一些样式
自定义MyCard.kt
package com.anguomob.jecpack.activity.compose.composition.local
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material.Card
import androidx.compose.runtime.Composable
import androidx.compose.runtime.compositionLocalOf
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.graphics.Color
data class Elevations(val card: Dp = 0.dp)
val LocalElevations = compositionLocalOf {
Elevations()
}
object CardElevation {
val height: Elevations
get() = Elevations(card = 10.dp)
val low: Elevations
get() = Elevations(card = 5.dp)
}
@Composable
fun MyCard(
elevation: Dp = LocalElevations.current.card,
backgroundColor: Color,
content: @Composable () -> Unit
) {
Card(
elevation = elevation,
modifier = Modifier.size(200.dp),
backgroundColor = backgroundColor,
content = content
)
}使用
package com.anguomob.jecpack.activity.compose.composition.local
import androidx.compose.foundation.layout.Column
import androidx.compose.material.*
import androidx.compose.material.SnackbarDefaults.backgroundColor
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.platform.LocalContext
import com.anguomob.jecpack.R
@Composable
fun CompositionSample2() {
Column() {
CompositionLocalProvider(LocalElevations provides CardElevation.height) {
MyCard(
backgroundColor = MaterialTheme.colors.onSurface.copy(alpha = 0.05f)
) {
}
}
MyCard(backgroundColor = MaterialTheme.colors.onSurface.copy(alpha = 0.05f)) {
}
}
}
对于初次学习还懵懂的CompositionLocal
现在已经非常的简单容易理解了
第一篇:
Kotlin Compose 隐式传参 CompositionLocalProvider_安果移不动的博客-CSDN博客
边栏推荐
- 2021:Greedy Gradient Ensemble for Robust Visual Question Answering
- 455. distribute biscuits [distribution questions]
- Network structure and model principle of convolutional neural network (CNN)
- MySql的开发环境
- PAT甲级 1026 Table Tennis
- USB DRIVER
- [数组]BM94 接雨水问题-较难
- 2019LXMERT:Learning Cross-Modality Encoder Representations from Transformers
- Easy to use plug-ins in idea
- promise源码-class版本【三、Promise源码】【代码详细注释/测试案例完整】
猜你喜欢

Games101 job 7 improvement - implementation process of micro surface material

2021:Greedy Gradient Ensemble for Robust Visual Question Answering

Cvpr2021:separating skills and concepts for new visual question answering
![455. distribute biscuits [distribution questions]](/img/51/c7544d0eaa121cd461ffa678079473.jpg)
455. distribute biscuits [distribution questions]

2021:Beyond Question-Based Biases:Assessing Multimodal Shortcut Learning in Visual Question Answeri

ESP8266

Mmdetection uses yolox to train its own coco data set

How does the brain do arithmetic? Both addition and subtraction methods have special neurons, and the symbol text can activate the same group of cell sub journals

2021:Passage Retrieval for Outside-KnowledgeVisual Question Answering通道检索的外部知识视觉问答

Resnet152 pepper pest image recognition 1.0
随机推荐
对数器
How does the brain do arithmetic? Both addition and subtraction methods have special neurons, and the symbol text can activate the same group of cell sub journals
Super détaillé, 20 000 caractères détaillés, mangez à travers es!
Geometric distribution (a discrete distribution)
GAMES101作业7提高-微表面材质的实现过程
733. image rendering
Anaconda3安装过程及安装后缺失大量文件,没有scripts等目录
lodash get js代码实现
Mmdetection uses yolox to train its own coco data set
servlet与JSP期末复习考点梳理 42问42答
Nacos调用微服务两个问题:1.Load balancer does not contain an instance for the service 2.Connection refused
Description of replacement with STM32 or gd32
Pat grade a 1021 deep root
TP5 Spreadsheet Excle 表格导出
2022 operation of simulated examination platform for tea artist (Senior) work license question bank
IDEA中好用的插件
Logarithm
LDR6028 手机设备一边充电一边OTG传输数据方案
【一起上水硕系列】Day 6
流沙画模拟器源码