Android

[Android/Kotlin] Toast 메시지 위치 설정하기

NaDuck 2022. 7. 24. 03:49

위치 설정

위/아래

  • Gravity.TOP
  • Gravity.BOTTOM

왼쪽/오른쪽

  • Gravity.LEFT
  • Gravity.RIGHT

또는

  • Gravity.START
  • Gravity.END

중앙

  • Gravity.CENTER_VERTICAL  (수직 가운데)
  • Gravity.CENTER_HORIZONTAL  (수평 가운데)

 


 

예시

1. 하단 우측에 Toast 메시지 띄우기

val toast = Toast.makeText(c, message, Toast.LENGTH_SHORT)

# 뒤의 2개의 파라미터는 각각 x_offset, y_offset
toast.setGravity(Gravity.BOTTOM or Gravity.RIGHT, 0, 0)  
toast.show()

 

우측 하단
우측 하단으로 메시지가 띄워진다.

 

2. 중앙 좌측에 Toast 메시지 띄우기

val toast = Toast.makeText(c, message, Toast.LENGTH_SHORT)

# ex) 중앙 좌측, 상단 중앙과 같이 "중앙"이 들어갈 경우
# Gravity.CENTER를 생략가능하다.
# 즉 아래의 코드는 이와 같다. => toast.setGravity(Gravity.LEFT, 0, 0)  
toast.setGravity(Gravity.CENTER or Gravity.LEFT, 0, 0)  
toast.show()

 

중앙 좌측으로 메시지가 띄워진다.

 


 

하면서...

  1. 대부분의 경우 default gravity(하단 중앙)를 사용할 것 같지만, 특수한 경우에 이러한 설정을 알아두면 좋을 것 같다.
  2. 뒤의 2개의 파라미터(x_offset, y_offset)로 메시지의 위치를 정교하게 설정할 수 있다. 하지만 기기에 따라 차이가 있을 것 같아서 웬만해서 안쓰는 게 좋을 것 같다.
  3. 정중앙 위치설정은 "Gravity.CENTER"로 가능. 이는 곧
    "Gravity.CENTER_VERTICAL or Gravity.CENTER_HORIZONTAL"와 동일하다.
  4. 아직 START&END / RIGHT&LEFT의 차이점은 알아내지 못했다. 더 깊이 파고든다면 이 부분도 함께 공부해야겠다. 
  5. 이것저것 실험하다가 "Gravity.START or Gravity.END"(또는 LEFT or RIGHT)로 설정하면 Toast 메시지의 길이가 화면 가로 너비 전체를 차지하더라.
  6. 반대로 "Gravity.TOP or Gravity.BOTTOM"으로 설정하면 Toast 메시지의 길이가 세로 너비 전체를 차지(하지만 안드로이드 개발 한평생 이건 쓰지 않을 것 같다)