Github wiki page显示了Activity实例中要使用的示例:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    verticalLayout {
        padding = dip(30)
        editText {
            hint = "Name"
            textSize = 24f
        }
        editText {
            hint = "Password"
            textSize = 24f
        }
        button("Login") {
            textSize = 26f
        }
    }
}

如何在Fragment内做到同样的事情呢?

我试着把verticalLayout块放在onCreateView块,但这个方法无法解决.我增加了anko-support-v4个依赖项,但仍然没有运气.

推荐答案

After digging up anko-support-v4 source code plus some trial and errors, I have found a workaround although I'm not sure if it's the right/recommended way. It seems a little undocumented.

A sample from my Fragment code:

override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {

    return UI {
        verticalLayout {
            linearLayout {
                avatar = imageView().lparams(width = dip(48), height = dip (48))
                name = textView().lparams(width = 0, weight = 1f)
            }

            linearLayout {
                // ...
            }
        }
    }.toView()
} 

I'm returning layout DSL wrapped in UI { ... }.toView() in Fragment.onCreateView(...)

Kotlin相关问答推荐

创建具有共同父类型的两种不同类型对象的列表的最有效方法是什么?

在没有外部 map 的情况下转换列表项

Compose:LaunchedEffect在密钥更改后不会重新启动

在Jetpack Compose中创建波浪式文本动画:顺序中断问题

捕捉异常是Kotlin协程中的反模式吗?

为什么不';Kotlin是否在数据类构造函数中隐式分配null值可为null的字段?

为什么 Kotlin main 函数需要 @JVMStatic 注解?

为什么 <= 可以应用于 Int 和 Long,而 == 不能?

Flow.state In() 未从其来源接收新值

按钮无法在 Android Studio 上打开新活动

Kotlin:伴随对象内的函数扩展

来自类型参数的属性的自定义 getter

如何在 kotlin 中生成 json 对象?

Kotlin惰性默认属性

Kotlin 的 Double.toInt() 中使用了哪种方法,舍入还是截断?

指定为非null的参数在ArrayAdaper中为null

将 Double 转换为 ByteArray 或 Array Kotlin

什么是 Kotlin 等价于 Class<?>

从 java 活动 *.java 启动 kotlin 活动 *.kt?

Kotlin 中的填充字符串