안녕하세요!
허접샴푸입니다~!
Toast 관련한 마지막 편입니다!
Toast에 대해 알아보겠습니다. 3편!
출처 : https://developer.android.com/guide/topics/ui/notifiers/toasts
[개요]
- 단순한 텍스트 메시지로 충분하지 않으면 맞춤 설정된 레이아웃을 만들 수 있다.
- 맞춤 레이아웃을 만들려면 XML 또는 앱 코드에 뷰 레이아웃을 정의하고 루트 View 객체를 setView(View) 메서드에 전달한다.
[활용]
1. 먼저 custom_toast.xml 레이아웃 파일을 만듭니다.
2. MainActivity.kt 에 해당 함수를 작성한다.
<설명>
[1] Gravity.TOP, yOffSet을 200으로 설정하여 해당 Toast를 화면 상단에 배치하며, 상단으로 부터 y 좌표 200에 표시되도록 하였습니다.
[2] duration은 LENGTH_LONG으로 설정하여 오랫동안 화면에 표시되도록 하였습니다.
[3] view = layout을 통해 나는 R.layout.custom_toast 레이아웃을 뷰로 사용하겠다고 설정합니다. 여기서 view는 원래 setView() 메서드인데, Kotlin 성격상 set과 get을 생략하는 이유로 단순히 setView(layout)이 view = layout으로 표시됩니다.
[4] show()를 통해 화면에 해당 Toast 를 띄웁니다.
with(Toast(applicationContext))에서 with은 Kotlin의 scope 함수 중 하나로써 Toast(applicationContext)를 이용하여 Toast 객체에 설정을 하겠다~ 이런식으로 이해하면 됩니다. 즉 with(객체)라고 작성하면 여기서 this라는 객체를 나타내는 'this' 수신자를 사용할 수 있게 됩니다.
결국
setGravity는 this.setGravity,
duration은 this.duration
view는 this.view
show()는 this.show()
와 같으며, this는 단순히 생략되어있습니다. 굳이 this는 해당 Toast 객체라는 것을 알고 있기 때문에 this.를 붙일 필요가 없는 것이죠.
with 에 대해 더 알아보기 위한 문서 : https://kotlinlang.org/docs/reference/scope-functions.html#with
3. showCustomToast() 함수를 호출하여 화면에서 확인을 한다.
이렇게 Toast를 3편에 나누어 파해쳐 보았습니다.
부끄러운 야기지만, 전 한번도 맞춤 토스트를 사용해본 적이 없으며 이번에 이렇게 나마 처음 사용해 보았습니다.
저도 공부해야할 것이 매우 많은 것 같습니다.
공부는 역시 끝이 없는 것 같습니다.
감사합니다~!
혹시 만들고 싶으신 뷰가 있으시면 댓글로 남겨주십쇼. 제가 만들어서 리뷰할 수 있도록 하겠습니다!
'[Android] > Google Developers' 카테고리의 다른 글
[Android Core] Snackbar 파해치기 3편 (0) | 2020.03.31 |
---|---|
[Android Core] Snackbar 파해치기 2편 (0) | 2020.03.22 |
[Android Core] Snackbar 파해치기 1편 (0) | 2020.03.12 |
[Android Core] Toast 파해치기 2편 (0) | 2020.03.06 |
[Android Core] Toast 파해치기 1편 (0) | 2020.03.06 |