[TECHIT] Android View

hegleB·2023년 6월 11일
0
post-thumbnail

View

  • 안드로이드에서 눈에 보이는 모든 요소
  • 개발자가 배치되는 모든 View들은 Class로 제공되는데 모두 View 클래스로 상속 받는다.
  • View 클래스는 모든 UI 요소들의 부모 클래스로써 Widget과 Layout으로 나뉜다.

Layout

  • Container, View Group이라고 부른다
  • 다른 View 들을 포함하고(Container) 내부의 View를 통합 관리하고(View Group) 내부 View들이 배치되는 모양을 결정(Layout)한다

Widget

  • 문자열 입력, 문자열 출력 등 어떤 기능을 가지고 있고 사용자와 상호 작용을 하는 View들을 통칭해서 Widget이라고 부른다.

View 주요 속성

  • id : xml이나 코드에서 View를 지칭하기 위해 사용하는 속성
  • layout_width : View의 가로 길이
  • layout_height : View의 세로 길이
  • layout_margin : View의 외부 여백
  • padding : View의 내부 여백
  • background : View의 배경 지정

ViewBinding

  • 안드로이드 스튜디오 버전이 변경되면서 추가된 라이브러리
  • 기존의 androidx 를 통해 View의 주소값을 자동으로 받아오는 것은 Kotlin 밖에 되질 않아 이를 자바에서 사용할 수 있도록 추가한 라이브러리
  • findViewById() 메서드를 사용하지 않고도 XML 레이아웃 파일에서 정의한 뷰를 직접 참조한다
  • 런타임에 발생할 수 있는 타입 오류를 컴파일 시점에 확인 할 수 있고, 코드 작성량을 줄일 수 있다.
// Android Studio 4.0 ~
buildFeature {
  viewBinding = true
}
  

viewBinding {
  enabled = true
}
class MainActivity : AppCompatActivity() {

    lateinit var activityMainBinding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        activityMainBinding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(activityMainBinding.root)
    }
}

ActivityMainBinding은 안드로이드 스튜디오에서 자동으로 생성한 바인딩 클래스이다. 각 뷰 요소는 바인딩 클래스의 멤버 변수로 생성이 되고, XML에 정의된 id를 기반으로 뷰 요소들을 접근한다

  • inflate() : XML 레이아웃 파일을 메모리에 로드하여 실제 뷰 객체로 인스턴스화한다.
  • setContentView() : 액티비티 화면을 구성하는 뷰를 설정한다.
profile
성장하는 개발자

0개의 댓글

관련 채용 정보