【发布时间】:2021-08-29 11:07:05
【问题描述】:
我正在使用 NavGraph - Navigation UI 组件从一个片段导航到另一个片段。
设备用于导航的物理按钮,但我如何激活应用顶部的后退箭头以返回上一个片段
导航图
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
app:startDestination="@id/charactersFragment">
<fragment
android:id="@+id/charactersFragment"
android:name="com.example.breakingbad.CharactersFragment"
android:label="fragment_characters"
tools:layout="@layout/fragment_characters" >
<action
android:id="@+id/action_charactersFragment_to_characterDetailFragment"
app:destination="@id/characterDetailFragment" />
</fragment>
<fragment
android:id="@+id/characterDetailFragment"
android:name="com.example.breakingbad.CharacterDetailFragment"
android:label="fragment_character_detail"
tools:layout="@layout/fragment_character_detail" />
</navigation>
CharacterDetailFragment - 目前没有太大作用
class CharacterDetailFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
}
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_character_detail, container, false)
}
}
活动
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navController = Navigation.findNavController(this, R.id.fragment)
NavigationUI.setupActionBarWithNavController(this, navController)
}
}
编辑
将活动代码更新为这个并且它工作了
class MainActivity : AppCompatActivity() {
private lateinit var navController: NavController
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
navController = Navigation.findNavController(this, R.id.fragment)
NavigationUI.setupActionBarWithNavController(this, navController)
}
override fun onSupportNavigateUp(): Boolean {
return navController.navigateUp() || super.onSupportNavigateUp()
}
}
谢谢 回复
【问题讨论】:
-
能否在activity中显示代码?
-
用活动更新了问题
-
你是用导航抽屉布局实现的吗??
标签: android kotlin navigation android-jetpack android-jetpack-navigation