<!-- navigation_graph.xml -->
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<fragment
android:id="@+id/fragment1"
android:name="com.example.app.Fragment1"
android:label="fragment1">
<action
android:id="@+id/action_fragment1_to_fragment2"
app:destination="@id/fragment2"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right" />
</fragment>
<fragment
android:id="@+id/fragment2"
android:name="com.example.app.Fragment2"
android:label="fragment2">
<argument
android:name="someArgument"
app:argType="string" />
</fragment>
</navigation>
kotlin
// MainActivity.kt
class MainActivity : AppCompatActivity() {
private lateinit var navController: NavController
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
navController = navHostFragment.navController
}
override fun onSupportNavigateUp(): Boolean {
}
}
kotlin
// Fragment1.kt
class Fragment1 : Fragment() {
private lateinit var binding: Fragment1Binding
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
binding = Fragment1Binding.inflate(inflater, container, false)
binding.button.setOnClickListener {
val action = Fragment1Directions.actionFragment1ToFragment2("Hello")
findNavController().navigate(action)
}
return binding.root
}
}