본문 바로가기

안드로이드/레이아웃

wrap_content와 match_parent

본 내용은 필자가 공부한 내용을 정리한 것으로 틀리거나 잘못된 내용이 있을 수 있습니다.

 


1. wrap_content

위의 텍스트뷰를 보면 layout_width, layout_height 속성을 볼 수 있습니다. 

이름에 써 있듯이 뷰의 너비와 높이 속성을 나타냅니다. 

 

wrap_content는 무엇을 뜻하는 걸까요?

 

-> 내용물을 감싼다는 뜻으로, 안에 담긴 내용물들의 길이만큼을 뷰의 크기로 정하겠다는 뜻입니다. 

-> 따라서, 길이를 가변적으로 하겠다는 겁니다. 그래서 text의 값의 글자의 길이만큼 뷰의 길이가 달라지는 것을 볼 수 있습니다. 

 

아래 사진에서 보이는 직사각형이 뷰의 크기입니다.

wrap_content의 값을 넣을 때 뷰의 크기1

 

글씨를 다르게 넣어주자 뷰의 크기도 달라진 것을 볼 수 있습니다 .

 

 

 

2. match_parent

wrap_content 와 다르게 match_parent 라는 값도 넣어줄 수 있습니다. 

 

-> match_parent 는 부모의 크기로 뷰의 크기를 맞추겠다는 뜻입니다.

-> 부모의 크기에 따라 뷰의 크기가 결정되며, 부모의 크기가 바뀌면 뷰의 크기도 바뀝니다. 

layout_width 의 값을 match_patent로 바꾸었더니, 부모인 contraint layout의 너비만큼 텍스트뷰의 길이가 늘어났습니다. 한마디로 부모의 너비에 맞춰 뷰의 길이를 꽉 채우겠단 것이죠.

 

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    ...(생략)...
    >
    
//텍스트뷰는 constraint layout의 꺽쇠와 꺽쇠괄호 사이에 있으므로, 
//텍스트뷰의 부모는 constraint layout이다. 

    <TextView
        android:id="@+id/textView"
        android:layout_width="30dp"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

 

3. 숫자

 wrap_content와 match_parent와 같이 가변적인 길이 말고, 절대적인 길이를 넣고 싶다! 할때는 숫자를 넣어줍니다.

속성의 값에 숫자를 넣어주면 됩니다. 

layout width에 30dp 라는 값을 넣어주었습니다. dp가 어떤 단위인지에 대해서는 생략하겠습니다. 하지만 일반적으로는 dp라는 단위를 씁니다. 또한, 숫자 뒤에 단위를 붙여주지 않으면 에러가 납니다. 

30dp 만큼의 너비가 정해지자 글씨가 다음줄로 내려간 것을 볼 수 있습니다. (height는 wrap_content이므로 늘어난 텍스트만큼 뷰의 높이가 늘어난 것입니다. 

'안드로이드 > 레이아웃' 카테고리의 다른 글

TextView  (0) 2022.05.15
xml 기본  (0) 2022.05.11
레이아웃  (0) 2022.04.03