(그림출처 : https://proandroiddev.com/the-life-cycle-of-a-view-in-android-6a2c4665b95e)
액티비티 화면을 구성할 때 사용하는 클래스는 모두 View 클래스의 하위 클래스이다.
레이아웃에 뷰를 포함하여 화면을 구성한다.
레이아웃끼리도 중첩이 가능하다. 레이아웃을 중첩시키면 계층 구조로 나타낼 수 있는데, 이를 컴포지트 패턴(composite pattern) 또는 문서객체 모델(document object model, DOM) 이라고 한다.
코드에서는 setContentView()
함수로 XML파일을 지정하여 화면을 출력한다.
<TextView
android:id="@+id/text01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello"
android:textStyle="bold"/>
XML 파일에 각 뷰는 id
로 식별하며 R.java 파일에 상수 변수로 추가된다.
(@
로 시작되는 XML 속성값은 R.java에 추가된다.)
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val textView : TextView = findViewById(R.id.text01)
}
}
해당 뷰는 findViewById()
로 가져올 수 있다.
뷰의 크기
"wrap_content"
: 컨텐츠 크기에 맞게"match_parent"
: 부모 클래스 크기에 맞게간격 설정
margin
: 각 뷰 사이 간격padding
: 하나의 뷰 가장자리와 컨텐츠 사이의 내부 간격 표시여부
"invisible"
: 보이지 않지만 자리는 차지"gone"
: 보이지도 않고 자리도 차지하지 않음"visible"
: 보임