android-fragments - 我如何从片段(kotlin)中打开片段

标签 android-fragments kotlin onclicklistener drawerlayout

我正在寻找一种使用 ClickListener 将片段移动到片段的方法;但我不知道如何将片段移动到片段。

我想像这样移动:

一个fragment有4个cardview

点击 1 cardview : 移动到片段 B
点击 2 cardview : 移动到片段 C
点击 3 cardview : 移动到片段 D
点击 4 cardview : 移动到 fragment F

我已经使用下面的代码将片段移动到事件

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        power655Card.setOnClickListener {
            val intent = Intent (getActivity(), Power655Activity::class.java)
            getActivity()?.startActivity(intent)
        }

最佳答案

Kotlin 中,如果你想在事件中加载各种片段,你可以创建一个函数,你可以在需要加载片段的任何地方调用它。

private fun loadFragment(fragment: Fragment){
    val transaction = supportFragmentManager.beginTransaction()
    transaction.replace(R.id.fl_main, fragment)
    transaction.disallowAddToBackStack()
    transaction.commit()
}

如果你想从片段中加载片段,

    val transaction = activity.supportFragmentManager.beginTransaction()
    transaction.replace(R.id.fl_main, SecondFragment())
    transaction.disallowAddToBackStack()
    transaction.commit()

在上面的代码 spinnet 中,SecondFragment() 是您希望加载的片段的实例。所以我们也可以如上所示传递片段的实例。

关于android-fragments - 我如何从片段(kotlin)中打开片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61948788/

相关文章:

android - 将监听器添加到数字选择器小部件

android - ViewPager Items 的延迟加载数据

android - 列出一个 fragment ?

java - 是否从 MainActivity 和 fragment 复制线程启动服务?

java - Android Espresso 测试 : Illegal class access: 'androidx.test.core.app.ListFuture' attempting to access 'androidx.concurrent.futures.DirectExecutor'

java - 如何使视频仅从按钮开始?

android - 如何向 SlidingTabLayout 添加标签?

Kotlin:扩展函数的惯用用法 - 将扩展函数放在它扩展的类旁边

android - startActivity() 与 context.startActivity()