Обратный порядок предметов подрядAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Обратный порядок предметов подряд

Сообщение Anonymous »

У меня есть композиционный компонент, который представляет сообщение.
Каждое сообщение может быть либо входящим, либо исходящим, в зависимости от того, что я хотел бы изменить все элементы в моем компоненте сообщения. src = "https://i.sstatic.net/lbfgu.png"/>
Есть ли другой путь вокруг этого?
MessageView.kt
@Composable
fun MessageView(
message: Message
) = Row(
modifier = Modifier
.fillMaxWidth()
.wrapContentHeight(),
verticalAlignment = Alignment.Bottom
) {

val (isIncoming) = message

val direction = if (isIncoming) {
LayoutDirection.Ltr
} else {
LayoutDirection.Rtl
}

CompositionLocalProvider(
LocalLayoutDirection provides direction
) {
MessageViewContent(message)
}

}

@Composable
private fun MessageViewContent(
message: Message
) = Row(
modifier = Modifier
.fillMaxWidth()
.wrapContentHeight(),
verticalAlignment = Alignment.Bottom
) {

val (isIncoming, text, at) = message

val background: Color
val textColor: Color
val timeColor: Color
val alignment: Alignment.Horizontal
val textAlignment: TextAlign

if (isIncoming) {
background = Color(0xFFEFEFEF)
textColor = Color(0xFF000000)
timeColor = Color(0xFF929292)
alignment = Alignment.End
textAlignment = TextAlign.Start
} else {
background = Color(0xFFE0727F)
textColor = Color(0xFFFEFEFE)
timeColor = Color(0xB3FEFEFE)
alignment = Alignment.Start
textAlignment = TextAlign.End
}

Image(
modifier = Modifier
.size(40.dp)
.clip(CircleShape),
painter = painterResource(R.drawable.ic_launcher_background),
contentDescription = null
)

Spacer(modifier = Modifier.width(12.dp))

Column(
modifier = Modifier
.weight(1F, fill = false)
.wrapContentWidth()
.background(
color = background,
shape = RoundedCornerShape(8.dp)
)
.padding(4.dp),
horizontalAlignment = alignment
) {

Text(
modifier = Modifier.padding(6.dp),
style = TextStyle(
fontSize = 16.sp,
color = textColor
),
text = text
)

Text(
style = TextStyle(
fontSize = 10.sp,
color = timeColor,
textAlign = textAlignment
),
text = "${at.hour}:${at.minute}",
)

}

Spacer(modifier = Modifier.width(60.dp))

}


Подробнее здесь: https://stackoverflow.com/questions/748 ... s-in-a-row
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»