【问题标题】:should I use newInstance function somewhere?我应该在某处使用 newInstance 函数吗?
【发布时间】:2022-01-16 23:41:54
【问题描述】:

我是 kotlin 和 android 开发的新手。

我正在学习一个教程,在那个教程中的片段类中,伴生对象定义了一个名为 newInstance() 的方法,它返回一个片段,该方法从未使用过。

class myFragment : Fragment(){
    companion object {

        fun newInstance(foo:Int): myFragment {
            val fragment = myFragment()

            val args = Bundle()
            args.putString("foo", foo)
            fragment.arguments = args

            return fragment
        }
    }
}     

这样好吗? 那会自动调用它还是我应该在某个地方调用它?

(如果解释不好,请见谅)

【问题讨论】:

    标签: android kotlin android-fragments


    【解决方案1】:

    它不会被自动使用,它只是创建片段的一种方式。 基本上,您需要在 FragmentManager 的帮助下在您希望将此片段添加/替换到其容器中的位置调用此函数

    【讨论】:

      【解决方案2】:

      您需要在活动中使用 supportFragment 管理器来替换片段

       val transition = supportFragmentManager.beginTransaction()
       transition.addToBackStack("Your_fragment_unique_tag")
       transition.replace(containerViewId, fragment).commit()
      

      containerViewId 将是您的活动中的FrameLayout id,这是用于替换片段的容器,即R.id.mainContainer

      【讨论】:

        猜你喜欢
        • 2017-06-03
        • 1970-01-01
        • 2012-11-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-28
        • 2021-09-19
        • 2015-02-13
        • 1970-01-01
        相关资源
        最近更新 更多