為什麼不使用xml繪製Andoird的UI? 類型不安全 非空不安全 xml迫使你在很多佈局中寫很多相同的代碼 設備在解析xml時會耗費更多的cpu運行時間和電池 最重要的時,它允許任何代碼重用 簡單案例 findViewById() LayoutParams 使用 描述佈局參數,其中寬高都是 設置 ...
為什麼不使用xml繪製Andoird的UI?
- 類型不安全
- 非空不安全
- xml迫使你在很多佈局中寫很多相同的代碼
- 設備在解析xml時會耗費更多的cpu運行時間和電池
- 最重要的時,它允許任何代碼重用
簡單案例
val act = this
val layout = LinearLayout(act)
layout.orientation = LinearLayout.VERTICAL
val name = EditText(act)
val button = Button(act)
button.text = "Say Hello"
button.setOnClickListener {
Toast.makeText(act, "Hello, ${name.text}!", Toast.LENGTH_SHORT).show()
}
layout.addView(name)
layout.addView(button)
verticalLayout {
val name = editText()
button("Say Hello") {
onClick { toast("Hello, ${name.text}!") }
}
}
findViewById()
val name = find<TextView>(R.id.name)
name.hint = "請輸入你的姓名"
name.onClick{Toast(name.text)}
LayoutParams
使用lparams()
描述佈局參數,其中寬高都是wrapContent
linearLayout {
button("Login") {
textSize = 26f
}.lparams(width = wrapContent) {
horizontalMargin = dip(5)
topMargin = dip(10)
}
}
horizontalMargin
設置左右的邊距verticalMargin
設置上下的邊距margin
設置四周的邊距