6-2 뷰클래스

StrayCat·2022년 10월 4일
0
post-thumbnail

뷰클래스 기본 구조


(그림출처 : https://proandroiddev.com/the-life-cycle-of-a-view-in-android-6a2c4665b95e)

액티비티 화면을 구성할 때 사용하는 클래스는 모두 View 클래스의 하위 클래스이다.

  • View : 모든 뷰의 최상위 클래스이며, 하위 클래스만 액티비티에서 출력한다.
  • ViewGroup : 컨테이너 기능을 담당하는 레이아웃 클래스의 상위 클래스
  • TextView : 텍스트 출력을 담당하는 뷰 클래스

레이아웃

레이아웃에 뷰를 포함하여 화면을 구성한다.
레이아웃끼리도 중첩이 가능하다. 레이아웃을 중첩시키면 계층 구조로 나타낼 수 있는데, 이를 컴포지트 패턴(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" : 보임

0개의 댓글