I am trying to show two text messages besides each other in a row but when the size of the first text is big, the second view gets pushed out of the screen as shown below:
The code:
Row(modifier = Modifier.fillMaxWidth()) {
Text(
text = "safasfasdfsasdssdsaasdsadsdsaasdsasdsasdasddassdsssdasdadsasdasdsd",
modifier = Modifier
.padding(top = 12.dp, bottom = 12.dp, end = 12.dp, start = 10.dp)
.background(Color.Gray)
)
Text(
text = "12:00 am",
style = messageTimeTextStyle,
modifier = Modifier
.padding(horizontal = 16.dp),
maxLines = 1
)
}
The output:
A LazyColumn is a vertically scrolling list that only composes and lays out the currently visible items. It's similar to a Recyclerview in the classic Android View system.
If you want to get the size in pixels: val screenDensity = configuration. densityDpi / 160f and multiply with dp, for example val screenHeight = configuration. screenHeightDp.
To center align content of Column along horizontal axis in Android Compose, set horizontalAlignment parameter with the value of Alignment. CenterHorizontally . Also, we may fill the maximum width by the Column using Modifier. fillMaxWidth().
You can apply the weight
modifier only to the long text.
The .weight
modifier sizes the element's width proportional to its weight relative to other weighted sibling elements in the Row
. The parent will divide the horizontal space remaining after measuring unweighted child elements and distribute it according to this weight
Something like:
Row() {
Text(text = "safasfasdfsasdssdsaasdsadsdsaasdsasdsasdasddassdsssdasdadsasdasdsd",
Modifier
.padding(top = 12.dp, bottom = 12.dp, end = 12.dp, start = 10.dp)
.background(Color.Gray)
.weight(1f)
)
Text(
text = "12:00 am",
modifier = Modifier
.padding(horizontal = 16.dp),
maxLines = 1
)
}
or
Row() {
Column(Modifier.weight(1f)){
Text(text = "safasfasdfsasdssdsaasdsadsdsa.." , ....)
}
Column() {
Text( text = "12.00 ..", .....)
}
}
If you wrap your text in boxes and give your boxes weight, then you get what you are looking for:
Row(modifier = Modifier.fillMaxWidth()) {
Box(Modifier.weight(2f)) {
Text(
text = "safasfasdfsasdssdsaasdsafasfasdfsasdssdsaasdsafasfasdfsasdssdsaasd",
Modifier
.padding(top = 12.dp, bottom = 12.dp, end = 12.dp, start = 10.dp)
.background(Color.Gray)
)
}
Box(Modifier.weight(1f)) {
Text(
text = "12:00 am",
modifier = Modifier
.padding(horizontal = 16.dp),
maxLines = 1
)
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With