【问题标题】:How do i open fragment from fragment (kotlin)我如何从片段中打开片段(kotlin)
【发布时间】:2020-05-22 06:03:40
【问题描述】:

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

我想这样移动:

一个片段有 4 个卡片视图

点击 1 个卡片视图:移动到片段 B
单击 2 卡片视图:移动到片段 C
点击 3 卡片视图:移动到片段 D
点击 4 卡片视图:移动到片段 F

我已经使用下面的代码完成了片段移动到活动

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

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

【问题讨论】:

  • 你能解释一下你移动到哪个片段吗?您解释说您将某些东西移动到片段中;但是当你点击 1cardview 时哪个片段在移动?
  • 你是在问如何在片段之间导航?
  • 这能回答你的问题吗? How to use Fragments in Android

标签: android-fragments kotlin onclicklistener drawerlayout


【解决方案1】:

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

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() 是您希望加载的片段的实例。所以我们也可以像上图那样传递fragment的实例。

【讨论】:

    【解决方案2】:

    您可以使用requireActivity().supportFragmentManager.beginTransaction()进行您需要的碎片交易。

    【讨论】:

      【解决方案3】:

      您可以更改片段,将其放入您的侦听器中:

      val fragmentB = FragmentB()
      activity.getSupportFragmentManager().beginTransaction()
                   .replace(R.id.layout_container, fragmentB, "fragmnetId")
                   .commit();
      

      R.id.layout_container 是您活动 xml 中的片段容器

      fragmentId是fragment的id,以后可以参考。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多