译文JetpackCompose入门教程译文JetpackCompose入门教程,通过学习本教程,可

尽管它仍处于alpha阶段,但Compose已经在Android社区掀起波澜。

在本教程中,你将学习JetpackCompose的基本概念,比如:可组合函数,如何在屏幕上显示内容以及更新内容。在掌握了基本概念之后,你会继续使用JetpackCompose构建一个菜谱App,它展示了由Material-design风格的食谱列表,其中包含卡片、图像和文本。

注意:Compose仍然处于alpha阶段。不应该把它用于正式Apps,因为它的API还不够稳定,从而可能会破坏你的代码。

在使用Compose编写代码之前,请先思考为什么Android团队创建了这个库?

与Android中当前的UI构建过程相比,Compose具有三大优势。

以隐藏视图为例。当使用当前命令式的UI工具包,你通常使用findViewById()来获取你想要隐藏的View的一个引用,然后通过这个引用调用setVisibility()。

因此,在创建视图后,你不用再获取对视图的引用。相反,你只需重新运行使用不同参数创建视图的代码。

注意:当你更新某些内容时,Compose实际上不会重建整个视图。它会智能更新那些需要更新的部分。

Compose是一个不依赖操作系统的库。对开发者来说这是一大优势。

如果现在Google想更新LinearLayout组件,它需要发布一个新的Android系统版本。遗憾的是,由于碎片化问题导致很多人无法使用最新的Android版本。

这意味着你不能依赖新的操作系统发布多年并且大多数用户升级后再使用新的LinearLayout组件。

借助JetpackCompose,开发者可以在不依赖更新操作系统版本的情况下添加新功能。无论用户设备上的操作系统是什么版本,它都可以正常工作。

此外,与LinearLayout组件不同,发布新版本的JetpackCompose不会破坏现有应用程序,因为除非你愿意,否则你不必升级到最新版本的JetpackCompose。JetpackCompose也没有使用Android现有的UI工具包,因此它是一个全新的开始,它提供了一个机会来解决View层次结构存在的一些由来已久的问题。而一旦你升级到新版本的Android,作为操作系统一部分的LinearLayout组件也会随之升级,并且它可能会给依赖它的应用程序带来重大变化。

Compose库的构建方式使你可以在细分的、可重用的构建块中构建UI,而不是在Fragment或Activity中。这种可组合性使代码更加清晰明了并利于重用。

Android已经问世十多年了,它的UI创建代码开始显示出它的年代感。光是View类就有上万行代码并且还需要兼容大量遗留代码。

你可以在本文顶部原文信息中访问原文地址来获取本教程所需要的资源,也可以通过访问原文资源来获取。

使用金丝雀版本的AndroidStudio来打开你下载资源中的starter项目。

编译并运行,你将看到一个白色屏幕,其中包含一个HelloWorld文本。

现在打开app/build.gradle文件并查看dependencies代码块。你会看到四个有趣的依赖:

defcomposeVersion="1.0.0-alpha06"...implementation"androidx.compose.ui:ui:$composeVersion"implementation"androidx.compose.foundation:foundation:$composeVersion"implementation"androidx.ui:ui-tooling:$composeVersion"implementation"androidx.compose.material:material:$composeVersion"Compose不仅仅是你导入的一个库,它是包含不同库的一个套件,用于构建你可能想要的不同UI。在这个项目中,你将使用构建基本布局所需的基本构建代码块。

除了上述依赖,你还可以看到在android->buildFeatures代码块中compose被设置为true:

buildFeatures{composetrue}你已经了解了基本的JetpackCompose项目所需的依赖,现在,可以真正开始学习它了。

由于JetpackCompose是使用代码的方式来构建UI,所以你不需要任何XML文件。这意味着你不需要在Activity或Fragment中使用setContentView(),而是使用setContent()来设置UI。

现在,打开MainActivity.kt并使用下面的代码替换现有的setContentView()调用:

除了setContent()之外,上面的代码片段中还有另一个新玩家:Text()。

在JetpackCompose中,你使用被@Composable注解标记的函数来构建UI。如果你在Mac上使用Command-Click或者在Windows上使用Control-click来点击Text(),你将看到类似下面的内容:

@ComposablefunText(...)Text()实际上是被@Composable注解标记的一个函数。Text()可组合函数负责在屏幕上绘制文本。你可以把它认为是Compose版本的TextView。

注意:通常你应该使用驼峰方式来命名函数。当你创建可组合函数时,你应该使用大写的函数名称以明确的表示你正在构建一个可组合函数。类似于Flutter小部件的工作方式或KotlinCoroutine函数(如Job()的命名方式)。

编译并运行,你将看到屏幕中的Text():

你可以通过TextStyle来自定义你的文本。通过将现有的Text()替换为以下内容来尝试一下:

Text("Hello,World!",style=TextStyle(color=Color.Red))再次确保导入了合适的androidx.ui包。编译并运行,现在你将看到红色的文本。

使用JetpackCompose时,你将使用普通的Kotlin代码和函数参数而不是XML样式和属性来自定义你的UI。你将在下一节中亲自尝试。

JetpackCompose的最大好处之一是你可以使用许多细分函数以模块化方式构建UI,而不是为每个Activity使用一个巨大的XML文件。

现在你已经熟悉了Text,你可以创建你第一个@Composable函数了。

在MainActivity下面添加以下函数:

@ComposablefunGreeting(){Text("Hello,World!",style=TextStyle(color=Color.Red))}恭喜,你刚刚创建了第一个自定义可组合函数!

为了使用它,使用Greeting()替换在setContent()中对Text()的调用:

setContent{Greeting()}编译并运行,你将看到如之前耀眼般的红色文本。

使用大量细分函数是创建可在不同屏幕上重复使用的UI块的好方式。

不过,有件事需要特别牢记:你只能在另外一个@Composable函数中调用@Composable函数,否则,App将会崩溃。

这一点与KotlinCoroutines非常相似,你只能在另外一个挂起函数或协程中调用挂起函数。

通常,当你编写一个ActivityXML的UI时,你可以使用布局预览来查看你的视图,而无需构建和运行你的应用程序。

JetpackCompose附带了一个类似的工具。

在之前创建的Greeting()函数之上且@Composable之下添加@Preview:

@Composable@PreviewfunGreeting(){Text("Hello,World!",style=TextStyle(color=Color.Red))}导入注解后,你会在屏幕右侧的预览面板中看到可组合函数的预览。

每次更新正在预览的可组合函数时,都必须重新编译才能看到更新后的视图。只能预览不带任何参数的可组合函数。

你可以预览你的组件了,现在是时候学习如何使用布局了。

屏幕上只有一个Text并不能构成一个特别有趣的应用程序。然而,当屏幕上显示三个Text时应该会带来绝对引人入胜的体验!

更新Greeting()以使用Text()三次:

Text("Hello,World!",style=TextStyle(color=Color.Red))Text("Hello,SecondWorld!",style=TextStyle(color=Color.Red))Text("Hello,ThirdWorld!",style=TextStyle(color=Color.Red))猜想一下上述可组合函数会如何显示?编译并运行,然后在预览窗口中查看结果是否符合你的预期。

非常完美。

开个玩笑,它看起来非常糟糕!

没有任何东西控制这些Text的位置,因此它们都在彼此之上绘制,就好像它们位于FrameLayout中一样。幸运的是,JetpackCompose提供了大量布局可组合函数。

在上述情况中,你将使用Column可组合函数为上述的混淆添加秩序。

把Column想象成垂直的LinearLayout。它只是将其所有子可组合函数布局在一个垂直的列中。

更新Greeting()以将三个Text()包装在一个Column()中:

@Composable@PreviewfunGreeting(){Column{Text("Hello,World!",style=TextStyle(color=Color.Red))Text("Hello,SecondWorld!",style=TextStyle(color=Color.Red))Text("Hello,ThirdWorld!",style=TextStyle(color=Color.Red))}}Column有一个被@Composable标记的lambda块,在其中你可以定义垂直排列的子可组合函数。

在Greeting()中你添加了三个Text()来作为Column的子可组合函数。这种让可组合函数接受lambda以创建其他可组合函数的模式在JetpackCompose中很常见。甚至可以说这就是整个Compose的设计思想。

编译并运行,你将看到三个在垂直列中排列的Text。这看起来好多了。

除了Column()之外,你还可以使用Row()在水平行布局子可组合函数中。这看起来像一个水平方向的LinearLayout。

你将构建一个名为ComposableCookBook的菜谱App,而不是构建简单的红色文本,它会显示美味的食谱列表。该项目带有一个预定义的Recipe:

你的目标是使用JetpackCompose使ComposeCookbook应用看起来更好,通过创建一个UI,该UI在卡片中显示每个食谱,卡片顶部是食谱的图片,卡片下方是原料列表。

第一步,你需要创建一个显示单个食谱的可组合函数。

右键单击ComposableCookBook包并选择NewNewKotlinFile/Class。然后从列表中选择File并输入文件名RecipeCard。最后,在文件中添加如下所示的RecipeCard()可组合函数:

@ComposablefunRecipeCard(recipe:Recipe){Text(recipe.title)}现在,你只是使用Text()显示菜谱的名称。

由于RecipeCard()带有一个参数,所以你不能使用@Preview。然而,你可以创建另一个提供默认RecipeCard()的可组合函数。在RecipeCard()下面添加以下代码:

@Composable@PreviewfunDefaultRecipeCard(){RecipeCard(defaultRecipes[0])}现在你可以预览RecipeCard()了。

接下来,你将要在RecipeCard()名称的上方添加图片。

将RecipeCard()中的内容替换为以下代码:

//1valimage=imageResource(recipe.imageResource)//2Column(modifier=Modifier.fillMaxWidth()){//3Image(asset=image,contentScale=ContentScale.Crop,modifier=Modifier.fillMaxWidth().height(144.dp))Text(recipe.title)}确保导入所有可能标记为未解析引用的红色函数。

如此之小的代码块中有很多神奇之处!然后根据需要刷新预览。

以下是对上述代码的解释:

刷新预览,你会看到食谱卡片的雏形!

拉面看起来很好吃——但是你需要什么原料来烹饪它呢?下一个任务,你将创建一个原料列表。

要列出原料,你将使用Text()。由于在上一步你已经定义了一个Column,添加原料将会非常容易。

将以下代码添加到食谱名称的Text()下面:

for(ingredientinrecipe.ingredients){Text(ingredient)}JetpackCompose的一大优点是你可以使用普通的Kotlin代码来描述稍微复杂的UI细节。

在上述代码中,你使用for循环列出了所有包含原料的Text。如果你重建UI,你会在名称下方看到这道美味拉面餐的所有原料。太酷了,对不对?而且你不需要定义一个RecyclerView.Adapter和任意的ViewHolder。

拉面看起来确实很好吃,但食谱卡片本身看起来比较方正。接下来,你将为食谱卡片添加圆角,让它看起来更好看。

使用Surface()作为父级可以让你有选择的为子项添加圆角。使用下面的代码替换现有RecipeCard()的内容:

Surface(shape=RoundedCornerShape(8.dp),elevation=8.dp){valimage=imageResource(recipe.imageResource)Column(modifier=Modifier.fillMaxWidth()){Image(asset=image,contentScale=ContentScale.Crop,modifier=Modifier.fillMaxWidth().height(144.dp))Text(recipe.title)for(ingredientinrecipe.ingredients){Text("$ingredient")}}}Surface()处理绘制形状并为组件提供一个"海拔"高度。对于食谱卡片,你将使用带有RoundedCornerShape()和8dp"海拔"高度的Surface()。

刷新构建。预览现在应该显示一张圆形的卡片!

卡片已初具规模,但它缺少两件事:名称组件上的一些基本样式以及组件之间的一些间距。你将在下一步中处理上述问题。

首先在食谱名称Text()中添加文本样式:

Text(recipe.title,style=MaterialTheme.typography.h4)在这里,你使用style参数通过默认的MaterialTheme排版标题样式来设置文本样式。

要将间距添加到卡片,请将名称和原料Text()包装在另一个Column()中并添加以下修饰符:

Column(modifier=Modifier.padding(16.dp)){Text(recipe.title,style=MaterialTheme.typography.h4)for(ingredientinrecipe.ingredients){Text("$ingredient")}}除了使用修饰符来控制宽度和高度之外,你还可以使用它们为不同的@Composable添加间距。

刷新预览。你应该看到一张漂亮的食谱卡片:

你的食谱卡片现在看起来很棒。是时候让你的用户能够列出他们最喜欢的食谱了。

通常,你使用RecyclerView来创建一个列表。在JetpackCompose中,你可以使用LazyColumnFor@Composable来实现延迟实例化子项的滚动列表,就像使用RecyclerView一样,但只需少量的代码!

要实现食谱列表,再次右键单击根代码包,然后选择NewNewKotlinFile/Class。然后从列表中选择File并输入文件名称RecipeList。最后,将RecipeList()添加到文件中:

现在你有一个可组合函数来显示你的食谱列表,是时候将所有内容连接到你的MainActivity中并在设备上查看你的工作成果了!

打开到MainActivity并将setContent()的内容替换为以下内容:

RecipeList(defaultRecipes)编译并运行。你会看到令人垂涎欲滴的美味食谱列表。

App看起来还不错,但是你无法真正辨别每个食谱卡片。要使UI看起来清晰明了,你需要在子项之间添加一些间距。

再次打开RecipeCard文件,为RecipeCard函数添加一个Modifier参数,将此参数传递给Surface:

funRecipeCard(recipe:Recipe,modifier:Modifier){Surface(shape=RoundedCornerShape(8.dp),elevation=8.dp,modifier=modifier){...}}然后修改DefaultRecipeCard预览函数,增加一个修饰符:

@Composable@PreviewfunDefaultRecipeCard(){RecipeCard(defaultRecipes[0],Modifier.padding(16.dp))}最后,打开RecipeList文件,并为RecipeCard增加一个16dp的间距修饰符。RecipeList函数现在应该如下所示:

现在App唯一缺少的是工具栏!你将在最后一步添加一个工具栏。

拥有工具栏是Android应用程序的默认行为,所以我们就必须要添加它!使用下面的代码替换MainActivity文件中setContent()的内容:

//1Column(modifier=Modifier.fillMaxSize()){//2TopAppBar(title={Text("ComposableCookBook")})//3RecipeList(defaultRecipes)}以下是对上述代码的解释:

编译并运行,你会在顶部看到一个漂亮的带有ComposeableCookBook字样的新工具栏。

恭喜!你已经使用JetpackCompose构建了你的第一个App。

你现在已经体验了Android用户界面世界的一些最新和最伟大的变化。但是你只是了解了Compose提供的一些基本功能,并且在Compose稳定之前,其中许多API必然会发生重大变化。

在本教程中,你了解了:

guodongAndroid

普通Android开发者一枚,熟悉Java/Kotlin语言,仅此而已。

THE END
1.中国风菜谱图片中国风菜谱设计素材红动中国素材网提供714个中国风菜谱图片、中国风菜谱素材、中国风菜谱背景、中国风菜谱模板、中国风菜谱海报等PS素材下载,包含PSD、AI、PNG、JPG、CDR等格式源文件素材,更多精品中国风菜谱设计素材下载,就来红动中国,最后更新于2024-12-05 15:23:48。https://so.redocn.com/zhongguo/d6d0b9fab7e7b2cbc6d720.htm
2.菜谱设计菜谱模板菜谱图片觅知网为您找到1261个原创菜谱设计图片,包括菜谱图片,菜谱素材,菜谱海报,菜谱背景,菜谱模板源文件下载服务,包含PSD、PNG、JPG、AI、CDR等格式素材,更多关于菜谱素材、图片、海报、背景、插画、配图、矢量、UI、PS、免抠,模板、艺术字、PPT、视频等设计素材就来觅知https://www.51miz.com/so-sucai/2747958/p_4/
3.菜谱菜单素材网站图片免费下载菜谱菜单,站酷提供丰富的图片素材,品牌设计,UI交互,动漫游戏,影视摄像等正版素材,站酷是设计师、摄影师、插画师、艺术家、创意人,设计创意首选中国设计师互动平台。https://www.zcool.com.cn/tag/ZMTI4MDA2OA==.html
4.海草菜谱UI图标海草菜谱UI按钮海草菜谱设计千库网为设计者提供海草菜谱网页ui,为您省却海草菜谱网页ui搜索时间,这里有海量高清网页ui供您下载使用,本次搜索为您找到74张网页ui素材。https://m.588ku.com/ui/47370129.html
5.chengchurui做的双皮奶的做法chengchurui的个人主页,chengchurui的全部菜谱https://m.douguo.com/dish/detail/1028219/
6.食堂一周菜谱明细表制作软件食堂一周莱谱为了方便食堂工作人员制作一周菜谱,并为就餐者提供丰富多样的菜品选择,我们开发了一款名为“食堂一周菜谱明细表制作软件”的软件,该软件能够根据预设条件和要求,快速生成一周菜谱明细表,方便食堂工作人员进行参考和修改。 功能特点 1、自动生成一周菜谱:软件可以根据预设条件和要求,自动生成一周菜谱明细表,包括每天的菜https://www.coffee.cn/xican/post/378174.html
7.Java项目:智能菜谱系统(java+SpringBoot+Mybaits+Vue+elementui+mysql管理员:登录、管理员主页、个人中心、用户信息管理、菜式类型管理、菜谱信息管理、菜谱评分统计、菜谱分类统计、评分信息管理、留言信息管理、系统管理等功能 环境需要 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; https://blog.csdn.net/yuyecsdn/article/details/137704424
8.20多屏餐厅电子菜单销售点单系统网页用户界面设计ui套件模板下载颜格视觉提供精品网页界面设计下载,当前预览的商品为20多屏餐厅电子菜单销售点单系统网页用户界面设计ui套件模板,源文件格式:fig,容量:128 MB ,分辨率:矢量https://www.youngem.com/detail/14078
9.移动UI设计中的7种主要导航模式51CTO博客陈列馆式的设计通过在平面上显示各个内容项来实现导航,主要用来显示一些文章、菜谱、照片、产品等,可以布局成轮盘、网格或用幻灯片演示(见图1-18 至图1-20)。 图1-18 BBC 和PULSE 应用 图1-19 Flickr 应用和Palm 手机上的PictureIt 应用 有时,对这些内容进行分组更易于用户浏览。Dwell 利用侧边选项卡把陈列https://blog.51cto.com/u_15767091/6857144
10.移动应用UI设计——导航设计陈列馆式的设计通常在平面上显示各个内容项来实现导航。 主要用来显示一些文章、菜谱、照片、产品等,可以布局成轮盘、网格或幻灯片演示。 陈列馆式导航能够很好地应用与用户需要经常浏览,频繁更新的内容,如下图的超级相册和便签本。 相册是我们在日常生活中时常运用到的一个功能,使用频率高,图片数量多,所以采用陈列馆http://www.qidianlife.com/Singular/index.php?m=Home&c=Discover&a=article&id=69
11.12组食谱App界面设计灵感在家闲着不如学学烹饪~集万千食谱于一身,包含星级点评、生活分享等功能的一款食谱APP非常值得拥有!海量食谱应该如何规划排版设计?这 12 组食谱 APP 界面设计希望带给你灵感~https://www.bilibili.com/read/cv6612667
12.天财商龙快餐管理系统功能上新,快来看看吧!4、【新增】【门店菜谱】外卖未映射菜品支持临时菜接单 说明: 门店菜谱模式下,如果系统设置绑定了外卖未映射品项对应的临时菜,则外卖未映射的菜品以绑定的临时菜录单。 5、【新增】厨打单增加【只显示单位】列 现状: 目前单位列:如果是多规格品项,则显示规格。没办法显示单位字段。 https://weibo.com/ttarticle/p/show?id=2309404948720386179402
13.菜单菜谱图片aipng平面设计模版素材免费下载UI&提示UI&提示 音效专辑音效专辑 设计练习设计练习 工具 AI配音AI配音 真人配音真人配音 音频编辑器音频编辑器 商用 免费商用 (CC协议)免费商用 (CC协议) 企业商用 (29元/首)企业商用 (29元/首) 配乐 情绪 安静安静 轻快轻快 浪漫浪漫 感人感人 https://www.aigei.com/item/cai_dan_cai_pu_19.html
14.美食菜谱类APP界面设计6、详情页设计 7、购物页面 8、产品详情页 这款美食菜谱类不仅有各种菜谱的制作方法,而且内部还增加了购物商城功能。整个APP界面设计非常干净简洁。 上海艾艺是一家专业的APP开发设计公司,提供APP开发、UI设计、微信开发等服务,如果您需要对APP进行UI设计,欢迎咨询。https://www.adinnet.cn/bloginfo/2018_05/blog_3721.html
15.手机菜单手机菜单图片手机菜单图片素材大全高清图片 UI设计手机app菜单移动界面 高清图片 手机appUI详情页菜谱移动界面 高清图片 美食手机壁纸 高清图片 ins风美食手机壁纸 高清图片 文艺餐桌手机壁纸 高清图片 婚礼手机邀请函 高清图片 创意文字手机壁纸 高清图片 手机商务图标 高清图片 意大利食品和烹饪菜单背景与本地食谱意大利品菜单 https://699pic.com/image/shoujicaidan.html
16.食谱?KeepYourSize(下厨房)懒卷毛uiui在下厨房分享了菜单「秘?低脂低热量巨好吃四款减脂凉拌面 黄瓜凉粉 10分钟搞定-豪华版爆款凉拌豆腐丝 凉面(荞麦面) 一盆才300卡的东北大拌菜 中式减脂便当合集(持续更新中) 酸辣凉拌面,天热就爱吃这口 30天减脂晚餐食谱 尹正没骗我 焖菜https://m.xiachufang.com/recipe_list/101592786/
17.美食菜谱app用户体验旅程图流程图模板ui美食菜谱app用户体验旅程地图,涵盖了一个用户从下载app到成功跟做一道菜的全部体验流程。流程图中包含各个阶段的用户动作与用户阶段目标,并详细分析了该阶段所涉及的重要页面,还分析了用户在当前情景下的情绪曲线波动情况。从以上分析的数据由此得到最终的设计机会点,理清了app的用户需求和设计发力点。 https://www.processon.com/view/664576a842522905d00b63ca
18.一种便捷式的智能菜谱推荐系统的设计与实现本系统架构包括表示层(UI) 、业务逻辑层(BLL) 、数据访问层(DAL) 。系统总体架构图如图1所示,表示层主要包括Web浏览器和Android系统;业务逻辑层的菜谱推荐是系统对用户进行智能推荐的具体操作;业务逻辑层的智能语音系统是指用户通过语音交流了解并学习菜谱。数据访问层是数据库的主要操控系统,数据库中的系统数据是实时https://www.fx361.com/page/2022/0531/10339908.shtml
19.素菜软件UI设计:清新界面,为素食者提供美味体验在素菜软件的UI设计中,美食推荐模块是一个重要的元素。通过精选的素食美食图片和简短的介绍,引导用户发现更多新的素菜菜谱。这种设计不仅激发用户的食欲,还拓展了用户的素食选择。 4. 菜谱详情:生动图文,简洁明了 菜谱详情页的UI设计生动有趣,采用图文并茂的方式,为用户展示素菜的制作步骤、所需食材以及独特的风味。https://www.epwk.com/meijie/306547.html
20.菜单栏图标素材菜单栏图标图片元素Ui按钮图标合集 PNG 枚红色UI控件 PNG 深蓝色UI工具按钮 PNG 简约花纹边框 PNG 中国风精美花纹镂空边框福字底纹背景素材 PSDJPG 古风特色花纹边框 PNG 餐饮服务美食海报背景 AIJPG 商务会所菜单背景素材 PSDJPG 弯曲的橙色标题框背景图 PNG 炒饭蘸水罗非鱼价目表菜单 https://www.51yuansu.com/tupian/caidanlantubiao.html
21.食物食谱移动应用程序UI套件为你提供『食物食谱移动应用程序 UI 套件』下载,app界面设计模板可自行编辑源文件中的文字,想下载更多相关设计模板素材,请上素云库。https://www.suyunku.com/?p=6862
22.美食食谱app界面图片免费下载美食食谱app界面素材免费下载美食菜谱类app套图界面设计 免费下载蓝色扁平美食外卖类APP配送全套移动界面 免费下载外卖APP首页界面 免费下载UI设计美食促销手机APP界面 免费下载美食类移动端主界面app 免费下载UI设计手机APP美食搜索界面 免费下载简约外卖平台APP界面设计 免费下载美食APP主页面 https://www.58pic.com/tupian/meishishipuappjiemian.html
23.本地数据库实现《菜谱大全》app(三)菜谱大全的UI框架也已搭建完毕,接下来就是通过本地数据库的操作来获取相应的数据支持了。1.首页列表https://developer.huawei.com/consumer/cn/forum/topic/0203159401478103297
24.么么电子菜谱Android版本APK下载5.09 (build 87)1.电子菜谱新增黑色UI主题风格,可在设置内点击切换点菜页面2024-11-12 查看更多 么么电子菜谱的介绍 么么电子菜谱HD - 线上点菜,轻松省时 App介绍: 么么电子菜谱HD是一款方便快捷的手机应用,帮助用户直接在线上点菜,省去了排队的麻烦。无论是修改菜的数量和人数,还是查看商家实时反馈,都能轻松https://www.pgyer.com/H0kp