我有一个包含一些行的列,我想在底部对齐最后一行,但该行永远不会位于屏幕底部,它位于上一行之后:
Column {
// RED BOX
Row(
modifier = Modifier
.fillMaxWidth()
.height(130.dp)
.padding(vertical = 15.dp, horizontal = 30.dp),
verticalAlignment = Alignment.CenterVertically
) {
Column {
Text(
text = stringResource(id = R.string.app_name),
style = TextStyle(fontSize = 40.sp),
color = Color.White
)
Text(
text = stringResource(id = R.string.app_description),
style = TextStyle(fontSize = 13.sp),
fontWeight = FontWeight.Bold,
color = Color.Black
)
}
}
Spacer(
modifier = Modifier
.fillMaxWidth()
.height(15.dp)
)
// GREEN BOX
val currentRoute = currentRoute(navController)
items.forEach { item ->
DrawerItem(item = …Run Code Online (Sandbox Code Playgroud) android kotlin android-jetpack-compose android-jetpack-compose-layout
文档说修饰符是从左边应用的。但从这个例子来看,它们似乎是从右侧应用的:首先边框,然后填充,因为文本和边框之间没有空格
Text("Hi there!", Modifier.padding(10.dp).border(2.dp, Color.Magenta))
Run Code Online (Sandbox Code Playgroud)
我有一个 LazyColumn,在其中我想显示一个包含两列的水平行,所以我尝试 LazyHorizontalGrid 来实现它。但我的应用程序崩溃了,但有例外 - IllegalArgumentException: LazyHorizontalGrid's height should be bound by parent。下面是我正在使用的代码,任何人都可以帮助修复它或通过任何其他方式我可以使一行有两列。
@Composable
fun HomeItem1() {
Surface(modifier = Modifier.nestedScroll(rememberViewInteropNestedScrollConnection())) {
LazyColumn {
//other contents
item {
LazyHorizontalGrid(
rows = GridCells.Fixed(3),
horizontalArrangement = Arrangement.spacedBy(16.dp),
verticalArrangement = Arrangement.spacedBy(16.dp)
) {
items(arrayList.size) {
Text(arrayList[it])
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我需要可组合项的大小来绘制动态线条,但我不想通过以下方式获取大小:
var size by remember { mutableStateOf(IntSize.Zero) }
Modifier.onSizeChanged{size = it}
or
Modifier.onGloballyPositioned{size = it.size}
Run Code Online (Sandbox Code Playgroud)
因为我不想重新组合。
目前我正在从 BoxWithConstraints 获取大小并作为参数传递,如下所示:
fun DrawLines(intSize:IntSize){
// handle lines
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法或者这就是我现在能做的?
感谢帮助。
Dialog(
properties = DialogProperties(usePlatformDefaultWidth = false),
onDismissRequest = {viewModel.showDialog.value = false}
){
Column(modifier = Modifier.width(LocalConfiguration.current.screenWidthDp.dp)
.height(LocalConfiguration.current.screenHeightDp.dp).background(color = Color.Black.copy(alpha = 1f))) {
}
}
Run Code Online (Sandbox Code Playgroud)
运行此代码会产生全屏对话框,但高度与屏幕高度不完全匹配。
有没有办法让对话框占据屏幕尺寸的完整宽度和高度?
请找到下面的屏幕截图:

所有标头(如声明请求的凭据、声明收到的凭据、待处理请求等)都是动态的,并且将来自后端,并且每个标头(如模块 1:... 等)的项目也是动态的。我还需要card封装 Header 和 Body 项目。
这是我尝试过的
LazyColumn(
modifier = Modifier
.offset(x = 0.dp, y = 110.dp)
.fillMaxSize()
.background(
shape = RoundedCornerShape(topStart = 20.dp, topEnd = 20.dp),
color = MaterialTheme.colors.primaryVariant
)
.padding(12.dp)
) {
itemsIndexed(
listOf(
"Claim requested credentials",
"Claim received credentials",
"Pending Requests"
)
) { index, item ->
Card(
modifier = Modifier
.fillMaxWidth()
.statusBarsPadding()
.background(
color = MaterialTheme.colors.primaryVariant,
shape = RoundedCornerShape(10.dp)
)
,elevation = 20.dp,
contentColor = MaterialTheme.colors.primaryVariant,
backgroundColor = MaterialTheme.colors.primaryVariant
) {
Column(modifier …Run Code Online (Sandbox Code Playgroud)