1 包大小比较
直接加入相关依赖包demo包大小增加 (11252KB-12975KB)增加了1723KB
7.1 13555KB
其他对比
考虑到后续出去databing等工具,包大小应该会降低不少
相关问题
compose不更新
如果自己封装的组件不更新可以使用加key的方式来刷新
@Composable
inline fun <T> key(
@Suppress("UNUSED_PARAMETER")
vararg keys: Any?,
block: @Composable () -> T
) = block()
当然。我这里出现问题是将参数作为初始值,赋给了一个state。这样会导致无法感知value的变化。
切记以后少偷懒
/// var inputContent by remember { mutableStateOf(value) }
var inputContent by remember { mutableStateOf("") }
inputContent = value
间隔被翻倍
.padding(10.dp)
.background(color = Color.Black)
// .width(220.dp)
.myWidth288to220()
@Composable
fun Modifier.myWidth288to220() = this.then(
width(220.dp)
)
这里padding被X2了。下图中左边的边距应该与小黑方块一样为10dp。但是结果确为20
如果直接使用width就能避免。
解决
fun Modifier.myWidth288to220() = this.then(
Modifier.width(220.myDp)
)
padding与offset的差异
padding 和 offset 之间的区别在于,向可组合项添加 offset 不会改变其测量结果:
因为测量结果是包含了剩余量的测量的,所以,哪怕是你向上偏移了,但是实际上这个组合项的高度是不会变的。有时候就会感觉不合常理,明明我下面有剩余空间,为什么没能填满。
shadow shape问题
Modifier.shadow(5.myDp, shape = RoundedCornerShape(topStart = 24.myDp, topEnd = 24.myDp))
这里左边被干掉了,正确显示,应该如下,后续有时间去看看内部啥地方错了