Android Jetpack撰写。使用堆栈布局

时间:2019-11-22 19:31:12

标签: android android-jetpack-compose

有人知道如何使用可组合的堆栈布局吗? 我知道,它必须类似于我们都知道的RelativeLayout。但是,我没有得到所需的结果。而不是一个视图在另一个视图上绘制,第一个视图完全覆盖了第二个视图(或者第二个视图根本没有绘制)。 我正在尝试在工具栏的中央放置一个文本,并在屏幕右侧对齐一个按钮。

(agentRef = :agentRef OR agentRef IS NULL AND :agentRef IS NULL)

1 个答案:

答案 0 :(得分:1)

Slack是可组合的,其子元素相对于其边缘定位。

仅举一个例子,中心为300x300的矩形,topLeft / bottomRight角为2个150x150的矩形。

Stack {
    aligned(Alignment.Center) {
        SizedRectangle(color = Color(0xFF0000FF), width = 300.dp, height = 300.dp)
    }
    aligned(Alignment.TopLeft) {
        SizedRectangle(color = Color(0xFF00FF00), width = 150.dp, height = 150.dp)
    }
    aligned(Alignment.BottomRight) {
        SizedRectangle(color = Color(0xFFFF0000), width = 150.dp, height = 150.dp)
    }
}

enter image description here

关于TopAppBar,您可以使用类似以下内容的方法:

val someActionImage: Image = ...
val someNavigationImage: Image = .....
val navigationIcon: @Composable() () -> Unit = {
    AppBarIcon(someNavigationImage) { /* doSomething()*/ }
}
val actionData = listOf(someActionImage)

TopAppBar(
        title = { Text("Simple TopAppBar") },
        navigationIcon = navigationIcon,
        actionData = actionData
    ) { actionImage ->
        AppBarIcon(actionImage) { /* doSomething()*/ }
    }