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

Lov*_*ari 6 android-fragments kotlin

   **How can I solved it**
Run Code Online (Sandbox Code Playgroud)

// 如何解决 kot​​lin 片段中的此错误 *

open class First : Fragment() {
}
Run Code Online (Sandbox Code Playgroud)

// '图像 Fragment() 中显示的内容无法访问' https://i.stack.imgur.com/Rcgl5.png

小智 5

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

class First constructor() : Fragment() {
}
Run Code Online (Sandbox Code Playgroud)

由于您使用下面的构造函数来传递,fragmentManager所以当您扩展其他类时应该有一个默认构造函数。


Cil*_*ing 4

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

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

class MyFragment() : Fragment() { /* some code here! remebmer about brackets after your MyFragment! */ }
Run Code Online (Sandbox Code Playgroud)

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

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