撰写 Appbar 重叠 activity 内容
Compose Appbar overlaps activity content
我还在学习 compose.in 我正在构建这个原型,我的列包含卡片视图,在这种情况下是 1 个虚拟卡片,与应用栏重叠。我也试过用脚手架,结果一样
这是卡片代码:
@Composable
fun DiaryCard(){
val bs = "filler text,strings,anything "+
"jadsjjadj adsnjasjd d saasd" +" sadsad asdasd adsasda" +
"sasdasdas dsa d"
Column {
Spacer(modifier = Modifier.padding(top = 6.dp))
Card(modifier = Modifier
.fillMaxWidth()
.padding(13.dp),
shape = MaterialTheme.shapes.small,
elevation = 5.dp, backgroundColor = Color.White){
Row(modifier = Modifier.padding(bottom = 2.dp)){
Text(text = "29 Sept. 2019", modifier = Modifier
.fillMaxWidth(0.75F)
.padding(start = 1.5.dp),color = Color.Black)
}
Divider()
Spacer(modifier = Modifier.padding(bottom = 3.dp,top = 2.dp))
Column(modifier = Modifier.fillMaxWidth()) {
Text(text = "today was a good day",color = Color.Black)
Spacer(modifier = Modifier.padding(bottom = 3.dp))
Text(text = bs, color = Color.Black)
}
}
}
}
应用栏:
@Composable
fun topAppbar(){
TopAppBar(backgroundColor = Color.DarkGray) {
}
}
您可以:
- 添加
Scaffold
和 topBar = { topAppbar() }
- 添加一个
Column()
来包裹Card的所有内容
类似于:
Scaffold(topBar = { topAppbar() },
) {
DiaryCard()
}
与:
@Composable
fun DiaryCard(){
val bs = "filler text,strings,anything "+
"jadsjjadj adsnjasjd d saasd" +" sadsad asdasd adsasda" +
"sasdasdas dsa d"
Column {
Spacer(modifier = Modifier.padding(top = 6.dp))
Card(
modifier = Modifier
.fillMaxWidth()
//.background(Color.Red)
.padding(13.dp),
shape = MaterialTheme.shapes.small,
elevation = 5.dp, backgroundColor = Color.White
) {
Column() { //It is important to avoid overlap inside the Card
Row(modifier = Modifier.padding(bottom = 2.dp)) {
Text(
text = "29 Sept. 2019", modifier = Modifier
.fillMaxWidth(0.75F)
.padding(start = 1.5.dp), color = Color.Black
)
}
Divider()
Spacer(modifier = Modifier.padding(bottom = 3.dp, top = 2.dp))
Column(modifier = Modifier.fillMaxWidth()) {
Text(text = "today was a good day", color = Color.Black)
Spacer(modifier = Modifier.padding(bottom = 3.dp))
Text(text = bs, color = Color.Black)
}
}
}
}
}
和:
@Composable
fun topAppbar(){
TopAppBar(backgroundColor = Color.DarkGray) {
Text("AppBar")
}
}
可以使用innerPadding,
Scaffold(
topBar = {
TopAppBar(
title = {
Text(
...
)
},
navigationIcon = {
IconButton(onClick = { }) {
Icon(imageVector = Icons.Default.Menu, contentDescription = "Menu Icon" )
}
},
backgroundColor = colorResource(id = R.color.purple_200),
contentColor = Color.White,
elevation = 12.dp
)
},
){
innerPadding ->
Box(modifier = Modifier.padding(innerPadding)){
DiaryCard()
}
}
我还在学习 compose.in 我正在构建这个原型,我的列包含卡片视图,在这种情况下是 1 个虚拟卡片,与应用栏重叠。我也试过用脚手架,结果一样
这是卡片代码:
@Composable
fun DiaryCard(){
val bs = "filler text,strings,anything "+
"jadsjjadj adsnjasjd d saasd" +" sadsad asdasd adsasda" +
"sasdasdas dsa d"
Column {
Spacer(modifier = Modifier.padding(top = 6.dp))
Card(modifier = Modifier
.fillMaxWidth()
.padding(13.dp),
shape = MaterialTheme.shapes.small,
elevation = 5.dp, backgroundColor = Color.White){
Row(modifier = Modifier.padding(bottom = 2.dp)){
Text(text = "29 Sept. 2019", modifier = Modifier
.fillMaxWidth(0.75F)
.padding(start = 1.5.dp),color = Color.Black)
}
Divider()
Spacer(modifier = Modifier.padding(bottom = 3.dp,top = 2.dp))
Column(modifier = Modifier.fillMaxWidth()) {
Text(text = "today was a good day",color = Color.Black)
Spacer(modifier = Modifier.padding(bottom = 3.dp))
Text(text = bs, color = Color.Black)
}
}
}
}
应用栏:
@Composable
fun topAppbar(){
TopAppBar(backgroundColor = Color.DarkGray) {
}
}
您可以:
- 添加
Scaffold
和topBar = { topAppbar() }
- 添加一个
Column()
来包裹Card的所有内容
类似于:
Scaffold(topBar = { topAppbar() },
) {
DiaryCard()
}
与:
@Composable
fun DiaryCard(){
val bs = "filler text,strings,anything "+
"jadsjjadj adsnjasjd d saasd" +" sadsad asdasd adsasda" +
"sasdasdas dsa d"
Column {
Spacer(modifier = Modifier.padding(top = 6.dp))
Card(
modifier = Modifier
.fillMaxWidth()
//.background(Color.Red)
.padding(13.dp),
shape = MaterialTheme.shapes.small,
elevation = 5.dp, backgroundColor = Color.White
) {
Column() { //It is important to avoid overlap inside the Card
Row(modifier = Modifier.padding(bottom = 2.dp)) {
Text(
text = "29 Sept. 2019", modifier = Modifier
.fillMaxWidth(0.75F)
.padding(start = 1.5.dp), color = Color.Black
)
}
Divider()
Spacer(modifier = Modifier.padding(bottom = 3.dp, top = 2.dp))
Column(modifier = Modifier.fillMaxWidth()) {
Text(text = "today was a good day", color = Color.Black)
Spacer(modifier = Modifier.padding(bottom = 3.dp))
Text(text = bs, color = Color.Black)
}
}
}
}
}
和:
@Composable
fun topAppbar(){
TopAppBar(backgroundColor = Color.DarkGray) {
Text("AppBar")
}
}
可以使用innerPadding,
Scaffold(
topBar = {
TopAppBar(
title = {
Text(
...
)
},
navigationIcon = {
IconButton(onClick = { }) {
Icon(imageVector = Icons.Default.Menu, contentDescription = "Menu Icon" )
}
},
backgroundColor = colorResource(id = R.color.purple_200),
contentColor = Color.White,
elevation = 12.dp
)
},
){
innerPadding ->
Box(modifier = Modifier.padding(innerPadding)){
DiaryCard()
}
}