如何使按钮从Kotlin中的另一个片段中打开另一个片段

时间:2019-05-29 19:37:48

标签: android kotlin

如何使按钮打开另一个片段。处于碎片之中。科特林

我是从科特林开始的,现在很难用按钮打开片段,我该怎么办?

1 个答案:

答案 0 :(得分:0)

您需要使用FragmentManager和FragmentTransaction即时添加片段。您可以在按钮的onClick方法中调用与此类似的函数。但是建议父活动处理每个片段的生命周期以及片段 不应该互相交流。以下摘自开发人员文档that can be found here。 “通常,您会希望一个片段与另一个片段进行通信,例如,根据用户事件来更改内容。所有片段到片段的通信都是通过共享的ViewModel或通过关联的Activity完成的。两个片段永远都不应直接通信。”

fun createFragmentonTheFly(){
        var mFragmentTransaction: FragmentTransaction = getSupportFragmentManager().beginTransaction()
        mFragmentTransaction.add(R.id.fr_container,new ProductListFragment()) 
        mFragmentTransaction.commit()
    }

最好的方法是添加一个接口,比如说onFragmentDetachedLisetner并添加一个方法replaceFragment()或其他方法,并使您的Activity实现此接口,并在片段分离后立即替换它,并使您的片段包含当用户单击按钮时按钮本身完成的按钮,然后您的活动将其替换为您要开始的按钮。并且还要考虑重用片段,因为这首先是片段的主要目的。