我实现了一个执行各种api请求的类,我的想法是该类的每个实例都有一个创建 View 的方法,以具有类似于瓦片的界面。

我的问题是我不知道如何以一种好的方式来实现它。

使用Anko和Kotlin的首选方式是什么?

最佳答案

Anko的documentation about that case非常棒(但是谁读了文档,是吗?)



示例(这就是我的用法,您可以选择其他方法):

class YourAwesomeButton: Button() {
    /* ... */
    fun makeThisButtonAwesome() {/* ... */}
}

/** This lines may be in any file of the project, but better to put them right under the button class */
inline fun ViewManager.yourAwesomeButton(theme: Int = 0) = yourAwesomeButton(theme) {}
inline fun ViewManager.yourAwesomeButton(theme: Int = 0, init: CustomView.() -> Unit) =
    ankoView({ YourAwesomeButton(it) }, theme, init)

在另一个文件中:
class YourAwesomeActivity: Activity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(saveInstanceState)
        relativeLayout(R.style.YourAwesomeAppTheme) {
            yourAwesomeButton(R.style.YourAwesomeAppTheme) {
                makeThisButtonAwesome()
            }.lparams {
                centerInParent()
            }
        }
    }
}

10-07 22:38