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

哪个网站专门做快餐车网站入口模板

哪个网站专门做快餐车,网站入口模板,aso优化app推广,门户网站建设报价创建Screents和ViewModels 在前面的章节中#xff0c;我们已经分析了OrderNow项目的理论概念和我们将赋予的组织。 在本章中#xff0c;我们将开始实现初始结构和模板#xff0c;这将联接每一个应用程序的部分。 首先将添加以下带有各自视图模型的主屏幕#xff1a; •…创建Screents和ViewModels 在前面的章节中我们已经分析了OrderNow项目的理论概念和我们将赋予的组织。 在本章中我们将开始实现初始结构和模板这将联接每一个应用程序的部分。 首先将添加以下带有各自视图模型的主屏幕 • 首页 • 产品列表 • 产品详情 • 购物车 添加元素的一个例子如下图所示 Sreens 和 ViewModels 我们将在应用程序中使用依赖管理器将每个ViewModel绑定到各自的屏幕上。为此我们必须首先在应用程序中依赖Hilt。 implementation com.google.dagger:hilt-android:2.38.1 // Use the latest version kapt com.google.dagger:hilt-android-compiler:2.38.1 // Use the latest version 在依赖Hilt的过程后将要求定义应用类型类例如在我们的示例项目中将定义为OrderNowApplication如下 HiltAndroidApp class OrderNowApplication:Application() { } 注意在androidmanifest .xml中注册OrderNowApplication类 application android:name.main.OrderNowApplication android:allowBackuptrue ... 此外我们将 Navigation Compose依赖到项目中这将允许View(Composable)在导航期间获得其各自ViewModel的实例: dependencies {        implementation androidx.hilt:hilt-navigation-compose:1.0.0 } 一旦在项目中正确地执行了前面的配置我们就可以像这样将ViewModel注入View: Home ViewModel: HiltViewModel class HomeViewModel Inject constructor() : ViewModel() { ... } Home Screen: Composable fun HomeScreen(viewModel: HomeViewModel hiltViewModel() ) { ... } 每个屏幕都将通过Hilt依赖管理器与其相应的ViewModel相关联。到目前为止我们已经集成了以下架构组件:Compose、Navigation和ViewModel。 这是Jetpack工具的完美组合在后面的章节中我们将看到它在移动开发中的潜力。 UI模式TopAppBar和BottomAppBar 通过Scaffold组件我们可以在应用程序中实现两种在Material Design中最常见的UI模式TopAppBar和BottomAppBar。 Scaffold是一个详细的视图composable它将允许我们以以下方式实现这些模式 Scaffold: Scaffold(         topBar {                    TopAppBar { /* Top app bar content */ }         },         bottomBar {         BottomAppBar { /* Bottom app bar content */ }         } ) { contentPadding - 9 // Screen content } 在代码片段中我们定义了topBarbottomBar和还未添加的屏幕内容。 在Scaffold中topBar和bottomBar部分是可选的也就是说可以省略其中一部分的定义。此外在Scaffold中我们可以声明两个更多的组件 • scaffoldState • snackbarHost 在下一章我们将看到每个的用法。现在我们只定义topBar和bottomBar。 现在我们知道如何在我们的应用程序中包含这些UI模式下一步就是创建代表TopAppBar和BottomAppBar的视图Composables。 我们将其组织在一个叫做patterns的目录中并在其中添加了两个ViewsOrderNowTopBar和OrderNowBottomBar如下所示 TopAppBar and BottomAppBar Composables: OrderNowTopBar OrderNowTopBar的实现很简单。我们最初只需要以以下方式实现它: Composable fun OrderNowTopBar() {         TopAppBar(                 title {                 Text(                         text stringResource(id AppString.app_name),                         textAlign TextAlign.Center,                         modifier Modifier.fillMaxWidth()                 )         },         backgroundColor MaterialTheme.colors.background,         contentColor contentColorFor(MaterialTheme.colors.background)         ) } 之前的实现还不包含返回选项等元素;然而在后面的章节中添加“Back”到TopAppBar中它将包含这样一个使用状态策略的导航选项。 OrderNowBottomBar OrderNowBottomBar的实现可以更精细一些因为我们需要包括屏幕之间的导航。但是我们将把实现细节留到下一章。 现在我们将包含一个没有导航的静态定义。 Composable fun OrderNowBottomBar() {val selectedIndex remember { mutableStateOf(0) }BottomNavigation(backgroundColor MaterialTheme.colors.background,contentColor contentColorFor(MaterialTheme.colors.background),elevation 10.dp) {BottomNavigationItem(icon {Icon(imageVector Icons.Default.Home, )},label { Text(text Home) },selected (selectedIndex.value 0),unselectedContentColor Color.Gray,selectedContentColor orange,onClick {selectedIndex.value 0})BottomNavigationItem(icon {Icon(imageVector Icons.Default.ShoppingCart, )},label { Text(text Cart) },selected (selectedIndex.value 1),unselectedContentColor Color.Gray,selectedContentColor orange,onClick {selectedIndex.value 1})} } 在这个阶段我们已经有了屏幕、视图模型和Scaffold的定义其中包括OrderNowBottomBar和OrderNowTopBar。 下一步是将所有的部分组合在一起我们将在下一部分中做这个。 将所有元素整合在一起 第一项任务是创建一个名为main的目录。这个目录将是横向的并将包含App的基类或结构。 在该目录中我们放置Application类移动MainActivity到那里以及应用程序的主屏幕我们将其命名为OrderNowScreen如下图所示。 Main Components  现在我们修改MainActivity.kt类以便它将登录屏幕加载到OrderNowScreen应用程序如下所示: AndroidEntryPoint class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContent {OrderNowScreen()}} }然后在OrderNowScreen视图中我们像这样定义应用程序的Scaffold: Composable fun OrderNowScreen() {InitialSkeletonTheme {Surface(modifier Modifier.fillMaxSize(),color MaterialTheme.colors.background) {Scaffold(topBar { OrderNowTopBar() },bottomBar { OrderNowBottomBar() }) { contentPadding -println(contentPadding)}}} }当您运行应用程序时结果应该类似于以下图像: 总结 在本章中我们已经构建了OrderNow项目的初始结构。 这里定义和实现的组件将是下一章继续讨论导航的基础。 随着我们阅读这些章节我们将改进OrderNow的每个部分的实现因此.我们的电子贸易将以最佳方式设计和实施。 源码 class MainActivity4: ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContent{OrderNowScreen()}} } Preview Composable fun OrderNowScreen() {MyTestTheme {Surface(modifier Modifier.fillMaxSize(),colorMaterialTheme.colors.background){Scaffold(topBar {OrderNowTopBar()},bottomBar{ OrderNowBottomBar()}) {contentPadding -println(contentPadding)}}} }Preview Composable fun OrderNowBottomBar(){val selectedIndex remember{ mutableStateOf(0)}BottomNavigation(backgroundColor MaterialTheme.colors.background,contentColorcontentColorFor(MaterialTheme.colors.background),elevation 10.dp){BottomNavigationItem(icon { Icon(imageVector Icons.Default.Home,) },label { Text(text 首页)},selected (selectedIndex.value 0) ,unselectedContentColor Color.Gray,selectedContentColor Color.Red,onClick { selectedIndex.value 0 })BottomNavigationItem(icon{Icon(imageVector Icons.Default.Favorite,)},label {Text(text热门)},selected (selectedIndex.value 1),unselectedContentColor Color.Gray,selectedContentColor Color.Red,onClick {selectedIndex.value1})BottomNavigationItem(icon { Icon(imageVector Icons.Default.ShoppingCart,) },label { Text(text 购物车)},selected (selectedIndex.value 2) ,unselectedContentColor Color.Gray,selectedContentColor Color.Red,onClick { selectedIndex.value 2 })BottomNavigationItem(icon{Icon(imageVector Icons.Default.Person,)},label {Text(text我的)},selected (selectedIndex.value 3),unselectedContentColor Color.Gray,selectedContentColor Color.Red,onClick {selectedIndex.value3})} }Composable fun OrderNowTopBar() {TopAppBar(title {Text(text stringResource(id R.string.app_name),textAlign TextAlign.Center,modifier Modifier.fillMaxWidth())},backgroundColor MaterialTheme.colors.background,contentColor contentColorFor(MaterialTheme.colors.background)) }HiltAndroidApp class OrderNowApplication : Application() { }
http://www.w-s-a.com/news/463212/

相关文章:

  • 网站 图片 自动往右移专门做定制化的网站
  • 最好用的cms手机百度关键词排名 网站优化软件
  • 凉山州城乡规划建设局网站长沙网站建设哪家强
  • 广州网站开发创意设计公司企业自己怎么制作网站首页
  • 曲靖 曲靖网站建设软件(app)开发wordpress 没有远程发布
  • 官方网站开发与定制网站建设技术是干嘛的
  • 昆明网站建设工作室网站菜单导航怎么做的
  • 南京网站做的好的公司猪八戒网站做推广怎么样
  • 建站收费标准福州网站搭建
  • 做防护用品的网站欧美网站建设风格特点
  • 龙华做网站联系电话北京软件开发培训班
  • 做网站运营有前途网站的建设与管理的心得体会
  • 河南网站推广怎么做网页制作免费下载
  • 网站如何屏蔽中国ip商丘网站建设的公司哪家好
  • 东莞广告公司东莞网站建设价格鹤壁哪有做网站的
  • 门户网站界面设计logo设计商标设计
  • 建设银行网站驱动宁波网站建设相信荣胜网络
  • 八里河网站建设项目建设可行性企业品牌推广方式有哪些
  • jsp网站开发之html入门知识广州服装设计公司
  • 做电商看的网站有哪些个人网页制作成品免费
  • 沈阳建站多少钱境外网站 备案
  • 提交网站收录入口斗图在线制作
  • 建设化妆品网站服务医药网站前置审批
  • 购物网站修改注册信息模块的分析怎么注册公司logo
  • 那个网站可以做域名跳转的青岛网站建设定制
  • 网站登记模板互联网技术发展及其影响的调查
  • 北京专业的网站建设西安企业家名单
  • 移动网站开发服务器丰都集团网站建设
  • 网站开发逻辑图烫画图案设计网站
  • 客户管理系统哪找公司网站如何做优化