-
Notifications
You must be signed in to change notification settings - Fork 1
/
AnkoActivity.kt
98 lines (87 loc) · 2.74 KB
/
AnkoActivity.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package com.taonce.myanko.anko
import android.graphics.Color
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.text.Editable
import android.text.TextWatcher
import android.util.Log
import android.view.Gravity
import android.view.View
import android.widget.Button
import android.widget.EditText
import com.taonce.myanko.R
import com.taonce.myanko.anko.custom.SettingActivity
import com.taonce.myanko.anko.custom.myLinearLayout
import com.taonce.myanko.anko.view.CustomCircleActivity
import org.jetbrains.anko.*
import org.jetbrains.anko.sdk27.coroutines.onClick
import org.jetbrains.anko.sdk27.coroutines.onLongClick
class AnkoActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
MainUI().setContentView(this@AnkoActivity)
}
}
class MainUI : AnkoComponent<AnkoActivity> {
override fun createView(ui: AnkoContext<AnkoActivity>) = with(ui) {
verticalLayout {
// 这个gravity对应的就是gravity,而在lparams闭包中,gravity对应的是layout_gravity
gravity = Gravity.CENTER
// 布局的属性params在闭包里面的lparams中设置,但是button、TextView等控件的属性params是在闭包外的lparams设置
lparams(matchParent, matchParent)
editText {
hint = "userName"
gravity = Gravity.CENTER
// 监听输入框输入情况
addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
})
}.lparams(width = dip(250), height = 200)
editText {
hint = "password"
top = 20
gravity = Gravity.CENTER
}.lparams(width = dip(250), height = 200)
button("list") {
backgroundColor = Color.parseColor("#FF9999")
alpha = 0.5f
// 点击事件
onClick {
// anko封装的intent携带值跳转
startActivity<ListActivity>("aulton" to "aulton")
}
// 长按事件
onLongClick {
toast("Long Click")
}
}.lparams(dip(250), dip(50))
button("setting") {
backgroundColor = Color.parseColor("#FF7777")
alpha = 0.5f
// 点击事件
onClick {
// anko封装的intent携带值跳转
startActivity<SettingActivity>("aulton" to "aulton")
}
}.lparams(dip(250), dip(50)) {
topMargin = dip(16)
}
button("custom_view") {
backgroundColor = Color.parseColor("#FF7777")
alpha = 0.5f
// 点击事件
onClick {
// anko封装的intent携带值跳转
startActivity<CustomCircleActivity>("aulton" to "aulton")
}
}.lparams(dip(250), dip(50)) {
topMargin = dip(16)
}
}
}
}