본문 바로가기

[Android]/Google Developers

[Android Core] Toast 파해치기 3편

안녕하세요!

허접샴푸입니다~!

 

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

 

Scope Functions - Kotlin Programming Language

 

kotlinlang.org

 

 

3. showCustomToast() 함수를 호출하여 화면에서 확인을 한다.

Gravity.Top --> 화면 상단, yOffset : 200 --> y의 200 좌표에 위치

 

이렇게 Toast를 3편에 나누어 파해쳐 보았습니다.

부끄러운 야기지만, 전 한번도 맞춤 토스트를 사용해본 적이 없으며 이번에 이렇게 나마 처음 사용해 보았습니다.

저도 공부해야할 것이 매우 많은 것 같습니다.

공부는 역시 끝이 없는 것 같습니다.

 

감사합니다~!

혹시 만들고 싶으신 뷰가 있으시면 댓글로 남겨주십쇼. 제가 만들어서 리뷰할 수 있도록 하겠습니다!