我是jetpack compose的新手,我真的很喜歡它。但是遇到了一個問題:我想創建一張卡片,在里面,我想顯示一個專案串列,它們之間有分隔符。我幾乎能夠實作它,這是我的代碼:
Box(modifier = Modifier.background(Color(0xFFf4f4f4))
.fillMaxSize()
.padding(top = 20.dp)) {
Card(
modifier = Modifier
.fillMaxWidth(),
shape = RoundedCornerShape(20.dp),
elevation = 5.dp
) {
val colorNamesList = listOf("Red", "Green", "Blue", "Indigo")
LazyColumn() {
itemsIndexed(
colorNamesList,
) { index, item ->
Column(
modifier = Modifier
.background(
color = Color(0xFFf2f2f2),
)
.clickable {
println(item)
},
horizontalAlignment = Alignment.CenterHorizontally,//those 2 does nothing
verticalArrangement = Arrangement.Center //when i change it nothing change
) {
println(item index)
Text(
text = "Item at $item",
modifier = Modifier
.fillMaxWidth()
.height(50.dp),
//textAlign = TextAlign.Center, without it image 1, with it image 2
color = Color.Black,
)
if (index < colorNamesList.lastIndex) {
Divider(
color = Color.Black.copy(alpha = 0.2f),
modifier = Modifier
.padding(horizontal = 80.dp),
)
}
}
}
}
}
}
它幾乎很好,但我沒有設法對齊其中的文本,我搜索了一些答案,但對齊和排列并沒有改變我的情況。
正如我在代碼中評論的那樣,我可以通過添加 textAlign = TextAlign.Center 來水平對齊,但是我無法垂直對齊,文本留在他的單元格頂部:
我想要做的是列的每個單元格中的文本中心。謝謝您的幫助。
uj5u.com熱心網友回復:
您也可以通過在 compose 中添加類似的 xml 屬性(如“wrap_content”)作為高度來實作這一點。
將“wrapContentHeight()”添加到修飾符,您將使其與頁面中心對齊。
Text(
text = "Item at $item",
modifier = Modifier
.fillMaxWidth()
.height(50.dp)
.wrapContentHeight(),
textAlign = TextAlign.Center
color = Color.Black,
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/487690.html
標籤:安卓 科特林 结盟 android-jetpack-compose 定心
下一篇:powershell腳本,用于創建按日期命名的檔案夾,并在其末尾添加.1、.2、.3等,它將通過任務調度程式運行