diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/LobstersItem.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/LobstersItem.kt index 69530765..f337b6d5 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/ui/LobstersItem.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/LobstersItem.kt @@ -1,10 +1,12 @@ package dev.msfjarvis.lobsters.ui +import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.Text import androidx.compose.foundation.background +import androidx.compose.foundation.border import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ConstraintLayout import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumnFor @@ -16,6 +18,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp +import androidx.ui.tooling.preview.Preview import dev.msfjarvis.lobsters.model.LobstersPost import dev.msfjarvis.lobsters.model.Submitter @@ -30,30 +33,39 @@ fun LazyItemScope.LobstersItem( .fillParentMaxWidth() .clickable(onClick = { onClick.invoke(post) }), text = { - Column { + ConstraintLayout { + val (title, tags, submitter) = createRefs() Text( text = post.title, color = Color(0xFF7395D9), fontWeight = FontWeight.Bold, - modifier = Modifier.padding(top = 4.dp) + modifier = Modifier.padding(top = 4.dp).constrainAs(title) { + top.linkTo(parent.top) + start.linkTo(parent.start) + } ) Row( - modifier = Modifier.padding(vertical = 8.dp), + modifier = Modifier.padding(vertical = 8.dp).constrainAs(tags) { + top.linkTo(title.bottom) + }, horizontalArrangement = Arrangement.spacedBy(8.dp), ) { post.tags.forEach { tag -> Text( text = tag, modifier = Modifier + .border(BorderStroke(1.dp, Color.Gray)) .background(Color(0xFFFFFCD7), RoundedCornerShape(4.dp)) - .padding(4.dp), + .padding(vertical = 2.dp, horizontal = 4.dp), color = Color.DarkGray, ) } } Text( text = "submitted by ${post.submitterUser.username}", - modifier = Modifier.padding(bottom = 4.dp), + modifier = Modifier.padding(bottom = 4.dp).constrainAs(submitter) { + top.linkTo(tags.bottom) + }, ) } } @@ -61,6 +73,7 @@ fun LazyItemScope.LobstersItem( } @Composable +@Preview fun PreviewLobstersItem() { val post = LobstersPost( "zqyydb",