android - jetpack compose 中的 layer-list 等价物是什么?
问题描述
jetpack compose 中的 layer-list 等价物是什么?
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/lightGray" />
<item android:drawable="@drawable/transp_01" />
</layer-list>
我想得到一张像所示的图像用作我所有屏幕的背景
解决方案
您可以在撰写中轻松绘制它。与Box
图层列表一样,您可以将任意数量的图像叠加在一起。所以一般来说,你可以使用这样的东西:
Box {
// replace any color item from the layer list with box with background:
Box(
modifier = Modifier
.background(Color.LightGray)
.matchParentSize()
)
// replace drawable item with Image:
Image(
painter = painterResource(id = R.drawable.my_image),
contentDescription = "...",
)
}
但是在您的情况下,您似乎只需要一张图像,并且可以为其设置背景颜色。由于您需要在应用程序中重用它,您可以将其移动到单独的视图中,例如:
@Composable
fun BackgroundView(modifier: Modifier) {
Image(
painter = painterResource(id = R.drawable.transp_01),
contentDescription = "...",
modifier = modifier.background(Color.LightGray)
)
}
然后将其设置为任何屏幕的背景,如下所示:
@Composable
fun SomeScreen() {
Box(Modifier.fillMaxSize()) {
BackgroundView(Modifier.matchParentSize())
// screen content
}
}
推荐阅读
- python-3.x - Dataframe中的值乘法
- reactjs - 未填充选定的下拉列表值
- react-native - 如何使视频适合 React Native 中的视图?
- android - SDK 目录不存在。GITLAB.COM CI
- javascript - 在 HTML 中按下按钮时图像无法显示
- javascript - 表单在 php 中提交 ajax 加载后无法保存检查的多个复选框值
- angularjs - 没有在 ace 编辑器中获得更新的光标位置?
- javascript - 没有执行箭头函数的jquery动画方法?
- python-3.x - numpy 矩阵代数或 python for-loop/list-comprehension 自动利用多处理?
- amazon-web-services - 按计划对每个 DynamoDb 条目运行 lambda?