Я пробовал с .
Код: Выделить всё
wrapContentSize()Код: Выделить всё
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun ChatScreen(
chatId: String?,
onBack: () -> Unit
) {
Scaffold(
topBar = {
TopAppBar(
title = {
Text(
text = "Chat with Alice"
)
}
)
},
bottomBar = {
SendMessageBox()
}
) { innerPadding ->
ListOfMessages(modifier = Modifier.padding(innerPadding))
}
}
Код: Выделить всё
@Composable
fun ListOfMessages(modifier: Modifier = Modifier) {
LazyColumn(
modifier = modifier.fillMaxSize()
.padding(16.dp),
verticalArrangement = Arrangement.spacedBy(8.dp)
) {
items(getFakeMessages()) { message ->
MessageItem(message)
}
}
}
Код: Выделить всё
@Composable
fun MessageItem(message: Message) {
Row(
modifier = Modifier
.fillMaxWidth()
.then(if (message.isMine) Modifier.padding(start = 48.dp) else Modifier),
horizontalArrangement = if (message.isMine) Arrangement.End else Arrangement.Start
) {
if (!message.isMine) {
Avatar(
imageUrl = message.senderAvatar,
size = 40.dp,
contentDescription = "${message.senderName}'s avatar"
)
Spacer(modifier = Modifier.width(8.dp))
}
Column {
if (message.isMine) {
Spacer(modifier = Modifier.height(8.dp))
} else {
Text(
text = message.senderName,
fontWeight = FontWeight.Bold
)
}
when (val content = message.messageContent) {
is MessageContent.TextMessage -> {
Surface(
shape = RoundedCornerShape(8.dp),
color = if (message.isMine) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.secondary
) {
Text(
text = content.message,
modifier = Modifier.padding(8.dp),
color = if (message.isMine) MaterialTheme.colorScheme.onPrimary else Color.White
)
}
}
is MessageContent.ImageMessage -> {
AsyncImage(
model = content.imageUrl,
contentDescription = content.contentDescription,
modifier = Modifier
.size(40.dp)
.clip(CircleShape),
contentScale = ContentScale.Crop
)
}
}
Text(
text = message.timestamp,
fontSize = 12.sp
)
}
}
}

Есть идеи, что я делаю неправильно и почему Surface не соответствует размеру текста?
Подробнее здесь: https://stackoverflow.com/questions/792 ... t-occupies
Мобильная версия