4.26 | 冲刺day8
开发社区页,显示社区的活动具体信息
suspend fun fetchData(): List<Data> { return withContext(Dispatchers.IO) { val service = ServiceCreator.create(ActService::class.java) val response = service.get().execute() if (response.isSuccessful) { response.body() ?: emptyList() } else { emptyList() } } } @Composable fun SocialScreen(modifier: Modifier = Modifier, navController: NavController) { val socialData = remember { mutableStateOf(emptyList<Data>()) } // 发送数据请求 LaunchedEffect(Unit) { // 发送网络请求或从其他地方获取数据 val newData = fetchData() socialData.value = newData Log.e("TAG", "SocialScreen: ${socialData.value}", ) } // 当 socialData 更新时,UI 将自动更新 Surface(modifier, color = MaterialTheme.colorScheme.background) { Box(modifier = Modifier.fillMaxSize()) { Greetings(datas = socialData.value) FloatingActionButton( onClick = { navController.navigate("adda")}, shape = CircleShape, contentColor = Color.White, modifier = Modifier .padding(16.dp) .align(Alignment.BottomEnd) // 右下角对齐 ) { Icon( imageVector = Icons.Default.Add, contentDescription = "Add", tint = Color.White ) } } } } @Composable fun OnboardingScreen( onContinueClicked: () -> Unit, modifier: Modifier = Modifier ) { Column( modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { Text("Welcome to the Basics Codelab!") Button( modifier = Modifier.padding(vertical = 24.dp), onClick = onContinueClicked ) { Text("Continue") } } } @Composable private fun Greetings( modifier: Modifier = Modifier, datas: List<Data> ) { Text(text = "活动列表:", modifier=Modifier.padding(30.dp)) LazyColumn(modifier = modifier.padding(vertical = 4.dp)) { items(items = datas) { name -> Greeting(data = name) } } } @Composable private fun Greeting(data: Data, modifier: Modifier = Modifier) { Card( colors = CardDefaults.cardColors( containerColor = MaterialTheme.colorScheme.primary ), modifier = modifier.padding(vertical = 4.dp, horizontal = 8.dp) ) { CardContent(data) } } @Composable private fun CardContent(data: Data) { var expanded by rememberSaveable { mutableStateOf(true) } Row( modifier = Modifier .padding(12.dp) .animateContentSize( animationSpec = spring( dampingRatio = Spring.DampingRatioMediumBouncy, stiffness = Spring.StiffnessLow ) ) ) { Column( modifier = Modifier .weight(1f) .padding(12.dp) ) { Text( text = "${data.name} 日期:${data.date} 时间:${data.time}", style = MaterialTheme.typography.headlineMedium.copy( fontWeight = FontWeight.ExtraBold ) ) if (expanded) { Text( text = "具体内容: ${data.text} \n发起人:${data.person} 参与人数:${data.limitNumber}" ) } } IconButton(onClick = { expanded = !expanded }) { Icon( imageVector = if (expanded) Icons.Filled.ExpandLess else Icons.Filled.ExpandMore, contentDescription = if (expanded) { stringResource(R.string.show_less) } else { stringResource(R.string.show_more) } ) } } }
浙公网安备 33010602011771号