这里是一个转换成 Anko 的简单 XML 文件。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent">
<EditText
android:id="@+id/todo_title"
android:layout_width="match_parent"
android:layout_heigh="wrap_content"
android:hint="@string/title_hint" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/add_todo" />
</LinearLayout>
用 Anko 描述的同样的视图
verticalLayout {
var title = editText {
id = R.id.todo_title
hintResource = R.string.title_hint
}
button {
textResource = R.string.add_todo
onClick { view -> {
// 可以在这里添加一些处理逻辑
title.text = "Foo"
}
}
}
}
可以看到在button布局中的onClick监听函数中,因为我们是使用 Kotlin代码来设计视图,所以可以直接使用title变量(editText视图对象)。