Android 路由使用
时间: 2023-11-10 15:22:55 浏览: 223
在 Android 中,路由是指根据 URL 或其他标识符将用户导航到不同的屏幕或视图的过程。一些常用的 Android 路由框架包括 Navigation、ARouter、RouterX 等。
以 Navigation 为例,以下是使用 Navigation 实现路由的步骤:
1. 在 `build.gradle` 文件中添加 Navigation 依赖:
```groovy
implementation "androidx.navigation:navigation-fragment-ktx:$version_navigation"
implementation "androidx.navigation:navigation-ui-ktx:$version_navigation"
```
2. 在 `res` 目录下创建一个 XML 文件,定义应用程序的导航图。例如,`navigation.xml` 文件中定义了两个目的地 `fragment_home` 和 `fragment_detail`,它们之间通过 `action_detail` 连接:
```xml
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:startDestination="@id/fragment_home">
<fragment android:id="@+id/fragment_home"
android:name="com.example.app.HomeFragment"
android:label="Home">
<action android:id="@+id/action_home_to_detail"
app:destination="@id/fragment_detail" />
</fragment>
<fragment android:id="@+id/fragment_detail"
android:name="com.example.app.DetailFragment"
android:label="Detail" />
</navigation>
```
3. 在 Activity 或 Fragment 中加载导航图:
```kotlin
val navController = findNavController(R.id.nav_host_fragment)
NavigationUI.setupActionBarWithNavController(this, navController)
```
4. 在布局文件中添加 `NavHostFragment`:
```xml
<fragment android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:navGraph="@navigation/navigation" />
```
5. 在代码中使用 `NavHostFragment` 来导航到目的地:
```kotlin
button.setOnClickListener {
findNavController().navigate(R.id.action_home_to_detail)
}
```
这样,当用户点击按钮时,就会导航到 `fragment_detail`。当用户按下返回键时,会自动返回到上一个目的地。
阅读全文