From 3d315b1ac36bb2278150b2f84d15b498f47ab966 Mon Sep 17 00:00:00 2001 From: AllenTom Date: Fri, 6 Sep 2024 02:11:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=A9=BA=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E5=8D=A1=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增空动态卡片,当用户没有发布过动态时展示。 --- .../riderpro/ui/index/tabs/profile/Profile.kt | 97 +++++++++++++++++-- 1 file changed, 90 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/Profile.kt b/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/Profile.kt index a65f28f..16c097a 100644 --- a/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/Profile.kt +++ b/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/Profile.kt @@ -36,6 +36,8 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Add import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.Icon @@ -246,6 +248,9 @@ fun ProfilePage() { } ) } + if (moments.itemCount == 0) { + EmptyMomentPostUnit() + } } items(moments.itemCount) { idx -> @@ -434,14 +439,16 @@ fun UserInformationFollowing(modifier: Modifier, accountProfileEntity: AccountPr horizontalAlignment = Alignment.End ) { Text( - modifier = Modifier.padding(bottom = 5.dp).noRippleClickable { - navController.navigate( - NavigationRoute.FollowingList.route.replace( - "{id}", - accountProfileEntity.id.toString() + modifier = Modifier + .padding(bottom = 5.dp) + .noRippleClickable { + navController.navigate( + NavigationRoute.FollowingList.route.replace( + "{id}", + accountProfileEntity.id.toString() + ) ) - ) - }, + }, text = accountProfileEntity.followingCount.toString(), fontSize = 24.sp, color = Color.Black, @@ -610,6 +617,82 @@ fun RidingStyleItem(styleContent: String) { } } +@Composable +fun EmptyMomentPostUnit() { + TimeGroup("You haven't left any tracks yet") + ProfileEmptyMomentCard() +} + +@Composable +fun ProfileEmptyMomentCard( + +) { + var columnHeight by remember { mutableStateOf(0) } + val navController = LocalNavController.current + + Column( + modifier = Modifier + .fillMaxWidth() + .padding(start = 24.dp, top = 18.dp, end = 24.dp) + ) { + Row( + modifier = Modifier + .fillMaxWidth() + ) { + Canvas( + modifier = Modifier + .height(with(LocalDensity.current) { columnHeight.toDp() }) + .width(14.dp) + ) { + drawLine( + color = Color(0xff899DA9), + start = Offset(0f, 0f), + end = Offset(0f, size.height), + strokeWidth = 4f, + pathEffect = PathEffect.dashPathEffect(floatArrayOf(20f, 20f), 0f) + ) + } + Spacer(modifier = Modifier.width(10.dp)) + Column( + modifier = Modifier + .weight(1f) + .onGloballyPositioned { coordinates -> + columnHeight = coordinates.size.height + } + ) { + Text("Post a moment now", fontSize = 16.sp) + Spacer(modifier = Modifier.height(24.dp)) + Box( + modifier = Modifier + .fillMaxWidth() + .aspectRatio(3f / 2f) + .background(Color.White) + .padding(16.dp) + ) { + Box( + modifier = Modifier + .fillMaxSize() + .background(Color(0xFFF5F5F5)) + .noRippleClickable { + navController.navigate(NavigationRoute.NewPost.route) + } + + ) { + Icon( + Icons.Default.Add, + tint = Color(0xFFD8D8D8), + contentDescription = "New post", + modifier = Modifier + .size(32.dp) + .align(Alignment.Center) + ) + } + } + } + } + } +} + @Composable fun MomentPostUnit(momentEntity: MomentEntity) { TimeGroup(momentEntity.time.formatPostTime2())