이 포스트는 Android Kotlin Fundamentals의 내용 중 lesson 2 : layout 일부를 번역하였습니다.
자세한 내용을 살펴보려면 위 링크를 참조하십시오
MainActivity는 AppCompatActivity의 하위클래스이므로 Activity 또한 상속받는다. Activity는 안드로이드의 핵심 클래스로, 안드로이드 앱 UI를 그리거나 이벤트들을 입력받는 역할을 한다.
모든 액티비티는 그와 연결된 레이아웃 파일을 가지며, 레이아웃 파일은 res에 있는 XML파일이다. (ex. activity_main.xml)
MainActivity에 있는 setContentView()는 레이아웃과 액티비티를 연결하고, 해당 레이아웃을 액티비티가 만들어질 때 실제 객체로 만든다. 이 과정을 통해 Activity는 객체들을 스크린에 그리고, 변형하는 작업을 할 수 있다.
앱 레이아웃에 있는 모든 UI 요소는 View를 상속받고, views라 불린다. Textview와 Button은 views의 종류들이다.
View 요소들은 ViewGroup으로 묶일 수 있다. view group은 view와 다른 view group의 컨테이너처럼 작동한다. LinearLayout은 view group의 한 예로, 요소들을 linear하게 정렬한다.
android:layout_width과 android:layout_height 속성은 뷰의 너비와 높이를 나타낸다. match_parent가 각 속성의 값으로 들어가면, 뷰의 너비 또는 높이를 부모의 너비와 높이까지 늘려준다. 한편 wrap_content는 뷰의 크기를 뷰의 내용을 담기에 알맞은 크기로 지정하는 값이다.
android:text 속성은 해당 뷰가 화면에 보여주는 텍스트를 나타낸다.
LinearLayout의 android:orientation 속성은 어떤 방식으로 정렬할 것인지를 나타내는데, horizontal(수평)과 vertical(수직)을 값으로 가질 수 있다.
android:layout_gravity 속성은 뷰와 해당 뷰의 자식들의 위치를 결정해준다.
android:textSize 속성은 text view의 text 크기를 나타낸다.
레이아웃 파일에 문자열들을 생으로 코딩하는 것보다 string resources를 사용하는 게 좋다.
res/values/strings.xml 파일은 string resources를 담는 파일이다.
문자열을 추출하여 strings 파일에 넣기 위해서는 Alt+Enter(Option+Enter on a Mac)를 누른 후 Extract string resources를 선택하면 된다.
코틀린 코드에서 view에 접근하기 위해서는 해당 view에 id를 지정해준 뒤(android:id) findViewById()를 사용하여 뷰 객체에 접근할 수 있다.
xml파일에서 view에 id를 생성하면 안드로이드 스튜디오가 R 클래스에서 해당 id의 이름으로 정수 상수를 생성한다. 이후 R.id 참조를 findViewById()에서 사용할 수 있다.
뷰 객체의 속성을 코틀린 코드에서 프로퍼티의 이름으로 간단히 접근할 수 있다. 예를 들어, text view의 android:text 속성은 코틀린 코드에서 text 프로퍼티로 정의되어있다.
click handler는 UI 요소에서 클릭이이나 탭이 발생했을 때 호출되는 메서드이다. click handler와 버튼과 같은 view를 이어주기 위해서는 setOnClickListener()를 사용하면 된다.
Toast는 사용자에게 작은 팝업창에서 간단한 메세지를 보여주기 위한 뷰이다.
Toast를 생성하려면 Toast클래스에 있는 makeText()를 다음 세 전달인자와 함께 호출하면 된다.
toast를 보여주려면 show()를 호출하면 된다.