android-fragments 如何在单击菜单中的按钮后切换到使用数据绑定的片段

kupeojn6  于 2022-11-14  发布在  Android
关注(0)|答案(1)|浏览(117)

enter image description here
enter image description here
类主要活动:AppCompatActivity(){最新初始化变量绑定:ActivityMainBinding覆盖创建时的功能(保存的示例状态:创建一个新的绑定,并将其添加到新的绑定中。

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    menuInflater.inflate(R.menu.bottom_nav_bar_main , menu)
    return true
}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    val intent : Intent
    when(item.itemId) {
        R.id.itemCourses -> {
            val fragment = CoursesFragment.newInstance()
        }
    }
    return true
}

}
类课程片段:片段(){

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    val binding = FragmentCoursesBinding.inflate(inflater , container , false)
    return binding.root
}

}

vom3gejh

vom3gejh1#

步骤1:将FragmentContainerView添加到活动xml中

<androidx.fragment.app.FragmentContainerView
     android:id="@+id/container"
     android:layout_width="match_parent"
     android:layout_height="match_parent" />

第2步:在MainActivity.class文件中,声明FragmentManager

private FragmentManager manager;

步骤3:在onCreate()中初始化片段管理器

manager = getSupportFragmentManager();

第4步:在onOptionsItemSelected中开始这个片段

Bundle bundle = new Bundle();
manager.beginTransaction()
                .replace(R.id.container, YourFragment.class, bundle, "TAG")
                .setReorderingAllowed(true)
                //.setCustomAnimations(R.anim.anim_enter, R.anim.anim_exit)
                .addToBackStack("TAG")
                .commit();

相关问题