-
Notifications
You must be signed in to change notification settings - Fork 1
view model
muune edited this page Feb 26, 2019
·
10 revisions
- ChViewModel를 상속해서 VM클래스를 만든다.
- style이 아닌 데이터를 바꾸는 것이 기본
- style인 속성의 경우 @PROP var alpha = 1.0 이렇게 앞에 @PROP를 붙인다.
//SigninVM
@VM
@SuppressLint("StaticFieldLeak")
object SigninVM:ChViewModel(){
override fun start(){
holder.start()
mx.forEachIndexed { i, _ -> mx[i] = 100.0 }
ma.forEachIndexed { i, _ -> mx[i] = 0.0 }
}
override fun end(){
holder.end()
mx.forEachIndexed { i, _ -> mx[i] = 0.0 }
ma.forEachIndexed { i, _ -> mx[i] = 0.0 }
}
override fun paused(){
holder.paused()
}
val mx = mutableListOf(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
}
//SplashVM
@VM
object SplashVM:ChViewModel(){
override fun start() {
holder.start()
title.start()
alpha = 0.0
}
override fun end() {
holder.end()
title.end()
alpha = 1.0
}
override fun resumeAnimation(it:ChItem){
alpha = it.circleOut(0.0, 1.0)
}
val time = 500
@PROP var alpha = 1.0
val holder = Holder(0.0, 0.0, 1.0, 1.0)
val title = Title
}
start()
- View가 start될 때 데이터를 변경시키는 데 사용
end()
- View가 end될 때 데이터를 변경시키는 데 사용
paused()
- View가 paused될 때 데이터를 변경시키는 데 사용
resumeAnimation(it: ChItem)
- View가 resumeAnimation될 때 데이터를 변경시키는 데 사용
- 매개변수가 ChItem으로 오기 때문에 easing처리를 할 수 있다.
- 참고문서 - ChItem
override fun resumeAnimation(it: ChItem) {
x = it.circleOut(Ch.window.width.toDouble(), 0.0)
alpha = it.circleOut(0.5, 1.0)
}
override fun resumeAnimation(it:ChItem){
alpha = it.circleOut(0.0, 1.0)
}
pauseAnimation(it: ChItem)
- View가 pauseAnimation될 때 데이터를 변경시키는 데 사용
- 매개변수가 ChItem으로 오기 때문에 easing처리를 할 수 있다.
- 참고문서 - ChItem
override fun pauseAnimation(it: ChItem) {
x = it.circleOut(0.0, -Ch.window.width.toDouble())
alpha = it.circleOut(1.0, 0.5)
}