<!-- 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 } }


上一篇:
下一篇:
切换中文