没有主构造函数,超类型初始化是不可能的

时间:2018-06-11 07:56:42

标签: android-fragments kotlin

   **How can I solved it**

//如何从kotlin片段*

解决此错误
open class First : Fragment() {
}

//'图片中显示的片段()片段未访问'     https://i.stack.imgur.com/Rcgl5.png

2 个答案:

答案 0 :(得分:1)

片段是Android中的特殊类,它们需要主构造函数(并且该构造函数位于类的名称之后)。 这个构造函数应该为空(如果你声明任何字段,那么你将看到警告,你不应该创建带参数的碎片)。

因此,编译代码所需的只是在片段名称后添加括号:

class MyFragment() : Fragment() { /* some code here! remebmer about brackets after your MyFragment! */ }

更重要的是,你应该避免使用params声明任何构造函数。 您应该按Companion.newInstance(someArgs: List<Arg>) : YourFragment创建片段。 (其中Companion是你片段的伴侣对象)。

如何初始化片段,您可以在此处找到:https://stackoverflow.com/a/9245510/7508302

答案 1 :(得分:1)

尝试添加这样的构造函数:

class First constructor() : Fragment() {
}

当您在下面使用构造函数传递fragmentManager时,扩展其他类时应该使用默认的构造函数。