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

论坛网站在线生成广告推广方案怎么写

论坛网站在线生成,广告推广方案怎么写,app官网入口,网页设计与制作培训班哪家好1. Navigation 介绍 Navigation 组件 是 Android Jetpack 的一部分,用于简化应用内导航逻辑,支持 Fragment、Activity 和 Compose 之间的跳转。核心优势: 单 Activity 架构:减少 Activity 冗余,通过 Fragment 或 Com…

1. Navigation 介绍

Navigation 组件 是 Android Jetpack 的一部分,用于简化应用内导航逻辑,支持 Fragment、Activity 和 Compose 之间的跳转。核心优势:

  • 单 Activity 架构:减少 Activity 冗余,通过 Fragment 或 Compose 实现界面切换。
  • 可视化导航图:通过 XML 或代码声明页面跳转关系。
  • 统一返回栈管理:自动处理返回按钮和手势导航。
  • 类型安全的参数传递:通过 Safe Args 插件或 Compose 的 Route 实现。

2. 项目中导入 Navigation 插件

传统 View 项目 (XML + Fragment)

build.gradle (Module) 中添加依赖:

dependencies {def nav_version = "2.7.7"implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"implementation "androidx.navigation:navigation-ui-ktx:$nav_version"// Safe Args 插件(可选)classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
}

Compose 项目

build.gradle (Module) 中添加:

dependencies {def nav_version = "2.7.7"implementation "androidx.navigation:navigation-compose:$nav_version"
}

在导入时要尤其注意导入的是 navigation-fragment 还是 navigation-compose 两者的使用有很大区别


3. 实现 Navigation 导航(XML + Fragment)

步骤 1:创建导航图

res/navigation 目录下新建 nav_graph.xml

<navigation xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/nav_graph"app:startDestination="@id/homeFragment"><fragmentandroid:id="@+id/homeFragment"android:name="com.example.HomeFragment"android:label="Home"><actionandroid:id="@+id/action_to_detail"app:destination="@id/detailFragment" /></fragment><fragmentandroid:id="@+id/detailFragment"android:name="com.example.DetailFragment"android:label="Detail" />
</navigation>

其中的action属于显式定义动作,如果是跳转页面的话可以不显式定义,但如果使用androidx.navigation:safe-args插件必须定义动作才能生成参数类。

步骤 2:配置 NavHost

在 Activity 的布局中添加 NavHostFragment

<androidx.fragment.app.FragmentContainerViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/nav_host_fragment"android:name="androidx.navigation.fragment.NavHostFragment"app:navGraph="@navigation/nav_graph"app:defaultNavHost="true" />

步骤 3:执行导航操作

在 Fragment 中通过 NavController 跳转:

// HomeFragment.kt
button.setOnClickListener {findNavController().navigate(R.id.action_to_detail)
}

参数传递(Safe Args)

  1. nav_graph.xml 中定义参数:
<fragment android:id="@+id/detailFragment"><argumentandroid:name="userId"app:argType="string" />
</fragment>
  1. 通过 Safe Args 传递参数:
val action = HomeFragmentDirections.actionToDetail("user123")
findNavController().navigate(action)

4. 基于 Compose 的 Navigation 导航

步骤 1:定义路由

在 Compose 中通过字符串定义路由:

object Routes {const val HOME = "home"const val DETAIL = "detail/{userId}"
}

步骤 2:配置 NavController

MainActivity 中初始化导航控制器:

val navController = rememberNavController()
NavHost(navController = navController, startDestination = Routes.HOME) {composable(Routes.HOME) {HomeScreen(onNavigateToDetail = { userId ->navController.navigate("detail/$userId")})}composable(Routes.DETAIL) { backStackEntry ->val userId = backStackEntry.arguments?.getString("userId")DetailScreen(userId = userId)}
}

步骤 3:触发导航

HomeScreen 中点击按钮跳转:

Button(onClick = { onNavigateToDetail("user123") }) {Text("Go to Detail")
}

5. 总结

  • 传统 XML 方式:适合已有 Fragment 项目,通过可视化导航图管理跳转逻辑。
  • Compose 方式:声明式 API,更适合现代化 Compose 项目,路由管理更灵活。
  • 核心优点:统一导航逻辑、类型安全、简化返回栈管理。

推荐场景

  • 新项目优先使用 Compose Navigation。
  • 旧项目逐步迁移时,可混合使用 XML 和 Compose 导航。
http://www.dtcms.com/wzjs/605970.html

相关文章:

  • 做宾馆网站好成都行业网站建设那里好
  • 什么是电子商务网站的建设群晖WordPress外网反向代理
  • 哪些网站可以做海报热点的企业邮箱怎么申请免费的
  • 汕头企业做网站新密网站建设
  • 品牌宣传网站制作网站正在建设中亚洲
  • 天河定制型网站建设做网站有没有前途
  • 网站排名软件网络做推广广告公司
  • 学习网页设计网站单品网站模板
  • 有代做医学统计图的网站吗身边的网络营销案例
  • 关键词分析工具网站低价网站设计
  • 哪家网站开发好淘宝是行业门户网站的盈利模式是什么
  • 织梦网站后台地址金华建设技工学校网站
  • 平谷网站建设服务优化网站制作方法大全
  • 旅游营销型网站建设百度高级检索入口
  • dw做的网站怎么放到服务器上建设网站包括哪些费用
  • 做网站借用网络图片不违法吧织梦做的网站在手机上显示
  • 西安网站优化推广方案东莞工厂网站建设
  • 温州市城市建设学校网站网站建立公司四川
  • 关键词seo排名优化推荐最适合seo的wordpress主题
  • 网站管理人员队伍建设有待加强深圳网站建设 壹起航
  • 金昌市建设局网站厦门企业网站建设专家
  • 外贸网站需要多少个语言网站如何绑定虚拟主机
  • 合肥有哪些做网站的在线logo免费设计生成器标智客
  • 电子网站建设ppt模板张家界网站建设方案
  • 东莞规划局官方网站潍坊建网站的
  • 网站关于页面乌海做网站的公司
  • 叫别人做网站要给什么东西云建设平台
  • 湖北省建设工程质量安全协会网站制作网站的最大公司
  • 佛山网站建设明细ui设计app界面设计流程
  • 购物网站建设服务新乡网站