베짱이와 노는 개미

안드로이드 앱 프로그래밍#7-스낵바 띄우기 본문

안드로이드 앱 프로그래밍

안드로이드 앱 프로그래밍#7-스낵바 띄우기

jsistop16 2021. 7. 29. 23:07

일단 스낵바가 무엇이냐

 

화면 하단에 토스트 메시지 처럼 잠깐 떴다가 사라지는 메시지 창을 의미한다.

 

그렇다면 토스트기능과 스낵바의 차이가 궁금해진다.

 

검색을 해보니 토스트 기능으로 메세지가 떴을때는 일정시간이 지나야만 그 메세지가 사라진다

 

하지만 스낵바의 경우에는 사라지는 시간을 사용자가 설정할수있다.

 

오래 떠있게 하기, 짧게 떠있게 하기, 사용자가 직접 사라지게 하기 등등의 기능이 가능하다

 

쉽게 설명하면 같은 메세지 창이라 해도

 

토스트기능으로 뜬 메세지는 사용자가 아무리 다른곳을 터치해도 사라지지 않고

 

스낵바기능으로 뜬 메세지는 사용자가 터치를 하면 사라지게 할 수 있는것이다.

 

실제로 앱을 만들때 경고문구 같은 경우는 사용자에게 무조건 보여줘야하기때문에 스낵바 보다는 토스트기능으로 구현하는것이 좋아 보인다.

 

자 그럼 코드를 먼저 보자 

 

이번에도 기능을 알아보기위해 constraint layout에서 버튼을 임의로 하나 만들었다.

 

그리고 자바코드로 액티비티를 설정해주자(스낵바)

 

스낵바의 시간을 설정해주는 데에는 3가지 종류가있다

 

Snackbar.LENGTH_LONG / Snackbar.LENGTH_SHORT / Snackbar.LENGTH_INDEFINITE

 

이중에서 Snackbar.LENGTH_INDEFINTE가 사용자가 터치를 했을때 메세지를 사라지게 해주는 것이다.

 

(**보통 Snackbar.LENGTH_LONG은 메세지 창이 5초 , Snackbar.LENGTH_SHORT은 3초정도 지속되는것 같다.)

 

 

Snackbar.LENGTH_INDEFINITE 이렇게 해주고 에뮬레이터를 돌려보면 스낵바 메시지 창이 계속 떠있다. 시간이 지나도 사라지지 않는다

 

그럼 우리는 이제 사용자가 확인 버튼을 터치했을 떄 메세지 창이 사라지게 하는 기능을 넣어볼것이다.

 

그때 필요한것은 setAction이다

 

자바가 어렵다는 걸 다시 느낀다. 클래스 정의와 객체와도 아직 헷갈린다.

 

어찌됐든 이렇게 자바 코드를 짜주면

 

이렇게 스낵바 오른쪽에 확인 버튼이 생기는게 보인다. 확인 이라는 텍스트를 바꿀수도 있다.(닫기 끄기 등등...)

 

저 확인 버튼을 누르면 스낵바는 바로 사라진다.

 

앱을 사용하면서 많이 사용해본 기능인데 실제로 구현해보는게 좀 복잡하다.

 

이상