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

问题描述 投票:0回答:2

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

我想这样移动:

一个片段有4张Cardview

点击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)
        }
android-fragments kotlin onclicklistener drawerlayout
2个回答
0
投票

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

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

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

fragmentId是该片段的ID,因此您以后可以参考它。


0
投票

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()是要加载的片段的实例。因此我们也可以传递片段的实例,如上所示。

© www.soinside.com 2019 - 2024. All rights reserved.