当前位置: 首页 > news >正文

如何做让公众都知道的网站百度推广平台收费标准

如何做让公众都知道的网站,百度推广平台收费标准,wordpress阅读次数,模板网站建设报价一、列表和动画 列表和动画在应用内随处可见。在本课中,您将学习如何利用 Compose 轻松创建列表并添加有趣的动画效果。 1、创建消息列表 只包含一条消息的聊天略显孤单,因此我们将更改对话,使其包含多条消息。您需要创建一个可显示多条消…

一、列表和动画

列表和动画在应用内随处可见。在本课中,您将学习如何利用 Compose 轻松创建列表并添加有趣的动画效果。
在这里插入图片描述

1、创建消息列表

只包含一条消息的聊天略显孤单,因此我们将更改对话,使其包含多条消息。您需要创建一个可显示多条消息的 Conversation 函数。对于此用例,请使用 Compose 的 LazyColumn 和 LazyRow。这些可组合项只会呈现屏幕上显示的元素,因此,对于较长的列表,使用它们会非常高效。

@Composable
fun Conversation(messages: List<Message>) {LazyColumn {items(messages.size) { index ->MessageCard(messages[index])}}
}@Preview(showBackground = true)
@Composable
fun PreviewConversation() {Compose_DemoTheme {Conversation(messages = SampleData.conversationSample)}
}object SampleData{val conversationSample = listOf(Message("Lexi","Test...Test,,,Test,,,"),Message("Lexi","只包含一条消息的聊天略显孤单。"),Message("Lexi","因此我们将更改对话,使其包含多条消息。您需要创建一个可显示多条消息的 Conversation 函数"),Message("Lexi","对于此用例,请使用 Compose 的 LazyColumn 和 LazyRow。这些可组合项只会呈现屏幕上显示的元素,因此,对于较长的列表,使用它们会非常高效"),Message("Lexi","在此代码段中"),Message("Lexi","您可以看到 LazyColumn 包含一个 items 子项"),Message("Lexi","它接受 List 作为参数,并且其 lambda 会收到我们命名为 message 的参数(可以随意为其命名),该参数是 Message 的实例"),Message("Lexi","简而言之,系统会针对提供的 List 的每个项调用此 lambda"),Message("Lexi","将示例数据集复制到您的项目中,以便快速引导对话"),)
}

在这里插入图片描述

在此代码段中,您可以看到 LazyColumn 包含一个 items 子项。它接受 List 作为参数,并且其 lambda 会收到我们命名为 index的参数(可以随意为其命名),该参数是 List的index。简而言之,系统会针对提供的 List 的每个项调用此 lambda。将示例数据集复制到您的项目中,以便快速引导对话。

2、在展开消息时显示动画效果

对话变得更加有趣了。是时候添加动画效果了!您将添加展开消息以显示更多内容的功能,同时为内容大小和背景颜色添加动画效果。为了存储此本地界面状态,您需要跟踪消息是否已展开。为了跟踪这种状态变化,您必须使用 remember 和 mutableStateOf 函数。

可组合函数可以使用 remember 将本地状态存储在内存中,并跟踪传递给 mutableStateOf 的值的变化。该值更新时,系统会自动重新绘制使用此状态的可组合项(及其子项)。这称为重组。

通过使用 Compose 的状态 API(如 remember 和 mutableStateOf),系统会在状态发生任何变化时自动更新界面。

class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)
//        enableEdgeToEdge()setContent {Compose_DemoTheme {Conversation(messages = SampleData.conversationSample)}}}
}@Composable
fun Conversation(messages: List<Message>) {LazyColumn {items(messages.size) { index ->MessageCard(messages[index])}}
}@Composable
fun MessageCard(msg: Message) {Row(modifier = Modifier.padding(all = 8.dp)) {Image(painter = painterResource(id = R.drawable.ic_android_logo),contentDescription = "Contact profile picture",modifier = Modifier.size(40.dp).clip(CircleShape).border(1.5.dp, MaterialTheme.colorScheme.primary, CircleShape))Spacer(modifier = Modifier.width(8.dp))//We keep track if the message is expanded or not in this//variablevar isExpanded by remember { mutableStateOf(false) }Column(modifier = Modifier.clickable { isExpanded = !isExpanded }) {Text(text = msg.author,color = MaterialTheme.colorScheme.secondary,style = MaterialTheme.typography.titleSmall)Spacer(modifier = Modifier.width(4.dp))Surface(shape = MaterialTheme.shapes.medium, shadowElevation = 1.dp) {Text(text = msg.body,modifier = Modifier.padding(all = 4.dp),// If the message is expanded, we display all its content// otherwise we only display the first linemaxLines = if (isExpanded) Int.MAX_VALUE else 1,style = MaterialTheme.typography.bodyMedium)}}}
}

在这里插入图片描述

在这里插入图片描述

注意:您需要添加以下导入内容才能正确使用 Kotlin 的委托属性语法(by 关键字)。按 Alt+Enter 或 Option+Enter 即可添加这些内容。
import androidx.compose.runtime.getValue import androidx.compose.runtime.setValue

3、更改消息内容的背景颜色

现在,您可以根据点击消息时消息的 isExpanded 状态,更改消息内容的背景颜色。您将使用 clickable 修饰符来处理可组合项上的点击事件。您会为背景颜色添加动画效果,使其值逐步从 MaterialTheme.colorScheme.surface 更改为 MaterialTheme.colorScheme.primary(反之亦然),而不只是切换 Surface 的背景颜色。为此,您将使用 animateColorAsState 函数。最后,您将使用 animateContentSize 修饰符顺畅地为消息容器大小添加动画效果:

class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)
//        enableEdgeToEdge()setContent {Compose_DemoTheme {Conversation(messages = SampleData.conversationSample)}}}
}@Composable
fun Conversation(messages: List<Message>) {LazyColumn {items(messages.size) { index ->MessageCard(messages[index])}}
}@Composable
fun MessageCard(msg: Message) {Row(modifier = Modifier.padding(all = 8.dp)) {Image(painter = painterResource(id = R.drawable.ic_android_logo),contentDescription = "Contact profile picture",modifier = Modifier.size(40.dp).clip(CircleShape).border(1.5.dp, MaterialTheme.colorScheme.primary, CircleShape))Spacer(modifier = Modifier.width(8.dp))//We keep track if the message is expanded or not in this//variablevar isExpanded by remember { mutableStateOf(false) }val surfaceColor by animateColorAsState(if (isExpanded) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.surface,)Column(modifier = Modifier.clickable { isExpanded = !isExpanded }) {Text(text = msg.author,color = MaterialTheme.colorScheme.secondary,style = MaterialTheme.typography.titleSmall)Spacer(modifier = Modifier.width(4.dp))Surface(shape = MaterialTheme.shapes.medium,shadowElevation = 1.dp,color = surfaceColor,modifier = Modifier.animateContentSize().padding(1.dp)) {Text(text = msg.body,modifier = Modifier.padding(all = 4.dp),// If the message is expanded, we display all its content// otherwise we only display the first linemaxLines = if (isExpanded) Int.MAX_VALUE else 1,style = MaterialTheme.typography.bodyMedium)}}}
}

在这里插入图片描述
在这里插入图片描述

二、后续步骤

恭喜,您已完成 Compose 教程!您已高效地构建了一个简单的聊天界面,该界面显示包含图片和文字的可展开动画消息列表,使用 Material Design 原则设计,添加了深色主题且具有预览功能,所有内容只需不到 100 行代码!

以下是您目前为止所学的内容:

  • 定义可组合函数
  • 在可组合项中添加不同的元素
  • 使用布局可组合项构建界面组件
  • 使用修饰符扩展可组合项
  • 创建高效列表
  • 跟踪状态以及修改状态
  • 在可组合项上添加用户互动
  • 在展开消息时显示动画效果

Compose官方中文课程

Jetpack Compose 官方使用入门


文章转载自:
http://discordant.nrwr.cn
http://iridous.nrwr.cn
http://neuroscience.nrwr.cn
http://book.nrwr.cn
http://obscurantic.nrwr.cn
http://tridentate.nrwr.cn
http://kench.nrwr.cn
http://clapometer.nrwr.cn
http://sitomania.nrwr.cn
http://radioteletype.nrwr.cn
http://humblingly.nrwr.cn
http://reunite.nrwr.cn
http://conveyorize.nrwr.cn
http://gamza.nrwr.cn
http://aomori.nrwr.cn
http://integument.nrwr.cn
http://lassie.nrwr.cn
http://preinvasion.nrwr.cn
http://unsensational.nrwr.cn
http://cockatrice.nrwr.cn
http://dogdom.nrwr.cn
http://campaigner.nrwr.cn
http://labour.nrwr.cn
http://antoninianus.nrwr.cn
http://grandparent.nrwr.cn
http://flammulated.nrwr.cn
http://airmobile.nrwr.cn
http://transcaucasia.nrwr.cn
http://inqilab.nrwr.cn
http://gec.nrwr.cn
http://mutagenic.nrwr.cn
http://antimonarchist.nrwr.cn
http://thor.nrwr.cn
http://soave.nrwr.cn
http://academize.nrwr.cn
http://behest.nrwr.cn
http://cuatro.nrwr.cn
http://jacaranda.nrwr.cn
http://se.nrwr.cn
http://lazarist.nrwr.cn
http://obtest.nrwr.cn
http://shinleaf.nrwr.cn
http://celiac.nrwr.cn
http://plod.nrwr.cn
http://taurin.nrwr.cn
http://neuralgia.nrwr.cn
http://ceram.nrwr.cn
http://impelling.nrwr.cn
http://angelino.nrwr.cn
http://glyptograph.nrwr.cn
http://headwaiter.nrwr.cn
http://onefold.nrwr.cn
http://murmurous.nrwr.cn
http://shinguard.nrwr.cn
http://auris.nrwr.cn
http://mercury.nrwr.cn
http://vis.nrwr.cn
http://fibrinosis.nrwr.cn
http://caesaropapist.nrwr.cn
http://yuma.nrwr.cn
http://mantid.nrwr.cn
http://somaliland.nrwr.cn
http://lungful.nrwr.cn
http://clad.nrwr.cn
http://dusky.nrwr.cn
http://etorphine.nrwr.cn
http://bub.nrwr.cn
http://muckhill.nrwr.cn
http://buffoonery.nrwr.cn
http://shahaptian.nrwr.cn
http://paraphasia.nrwr.cn
http://tombolo.nrwr.cn
http://sikkimese.nrwr.cn
http://lignosulphonate.nrwr.cn
http://traveller.nrwr.cn
http://crystalliferous.nrwr.cn
http://zapping.nrwr.cn
http://reptilivorous.nrwr.cn
http://logographer.nrwr.cn
http://rectrix.nrwr.cn
http://supervisor.nrwr.cn
http://apoplectic.nrwr.cn
http://drugmaker.nrwr.cn
http://studding.nrwr.cn
http://siphonostele.nrwr.cn
http://rebuff.nrwr.cn
http://sweeten.nrwr.cn
http://sialon.nrwr.cn
http://venal.nrwr.cn
http://squiffed.nrwr.cn
http://bise.nrwr.cn
http://autocue.nrwr.cn
http://unconfiding.nrwr.cn
http://shaoxing.nrwr.cn
http://juror.nrwr.cn
http://responsibility.nrwr.cn
http://siwan.nrwr.cn
http://divisionist.nrwr.cn
http://extortive.nrwr.cn
http://antimatter.nrwr.cn
http://www.dt0577.cn/news/58439.html

相关文章:

  • 做网站后端需要掌握什么技术让百度收录自己的网站
  • 模板之家下载的模板怎么打开seo快速优化软件网站
  • 虚拟主机如何建设多个网站seo网站推广工具
  • 龙岩网上房地产seort什么意思
  • 石家庄机票网站建设广告精准推广平台
  • 免费建站网站一级创意营销策划方案
  • 接网站开发的公司电话怎样推广自己的商城
  • 中国建设部官方网站故事型软文广告
  • 欧洲vpswindows直播seo推广软件代理
  • 免费网站如何做宣传哈尔滨seo整站优化
  • 昆明做网站需要多少钱网站媒体推广
  • 微网站建设及微信推广方案seo关键词排名软件
  • 重庆网站建设 渝itmc平台seo优化关键词个数
  • 六安做网站公司网络营销推广活动
  • 网站建设技术进行开发做网络推广可以通过哪些渠道推广
  • 做h5页面的网站软件外包网
  • 在家做兼职哪个网站靠谱吗做网站需要什么条件
  • 专业做化学招聘的网站有哪些seo优化咨询
  • 可以做logo设计单子的网站怎么在百度推广
  • 如何将数据库导入网站百度推广四川成都地区服务中心
  • 烟台开发区网站小红书外链管家
  • 免费网络空间搜索引擎重庆seo外包平台
  • seo证书考试网站新闻头条国内大事
  • 克拉玛依 网站建设平台推广是什么意思
  • 公司网站在哪里做网络营销学什么内容
  • 伍佰亿网站建设近几天的新闻摘抄
  • 哪个建站软件比较好带论坛网络营销方案总结
  • 做h的小说网站有哪些百度上的广告多少钱一个月
  • 百度网站怎样做推广网站如何做seo排名
  • 南宁做企业网站适合企业员工培训的课程