Floating Action Button
공중에 떠있는 듯한 느낌을 주는 원형의 버튼이며, 이미지를 넣어서 디자인하는 버튼이다.
timer
일정 시간이 지날때마다 특정 코드를 실행시키고 싶다면 timer를 사용한다.
사용법은 타이머를 담을 변수를 선언한 뒤, 그 변수에 타이머를 정의하면 실행된다.
예시 코드는 다음과 같다.
private var timerTask : Timer? = null
//....
timerTask = timer(period = 10) {
time++
val sec = time / 100
val milli = time % 100
runOnUiThread {
secTextView.text = "$sec"
milliTextView.text = "$milli"
}
}
일단 null로 초기화를 한 뒤, timerTask라는 변수에 timer를 담으며 실행시킨다.
위 코드는 10ms마다 중괄호 안의 코드를 실행한다.
또한, 타이머는 워커스레드에서 동작하는데, 워커 스레드에서는 UI를 조작할 수 없다.
UI를 조작하고싶다면 runOnUiThread 안에서 조작해야한다.
타이머를 종료하려면 다음과 같이 타이머를 담은 변수에 cancel 메서드를 사용하면 된다.
timerTask?.cancel()
동적으로 LinearLayout에 뷰 추가하기
뷰를 미리 지정해놓고 값만 제어하는게 아니라, 상황에 맞춰 뷰를 추가하는 방법을 알아보자.
LinearLayout의 addView 메서드를 활용하면 쉽게 뷰를 추가할 수 있다.
addView의 인자로 추가할 view 객체를 전달하면 된다.
두번째 인자로 뷰를 추가할 위치를 전달할 수 있으며, 기본값은 마지막인 -1일이다.
view가 많이 추가되어 화면 영역을 벗어나도 스크롤 바가 생기지 않기 때문에, 스크롤 기능을 사용하고싶다면 LinearLayout을 ScrollView로 감싸도록 하자.
아래 예시 코드에서는 맨 위에 랩타임을 추가한다.
val lapTime = this.time
val textView = TextView(this)
textView.text = "$lap LAB : ${lapTime / 100}.${lapTime%100}"
lapLayout.addView(textView, 0)
lap++
'📁App Developing > Kotlin 강좌' 카테고리의 다른 글
ListView (0) | 2022.09.04 |
---|---|
레이아웃 (0) | 2022.08.27 |
Bmi 앱 메모 (0) | 2022.07.24 |
kotlin 기초 문법 (0) | 2022.07.23 |
kt 파일에서 xml 파일의 요소에 접근하기 (0) | 2022.07.23 |
댓글