이번에는 리니어 레이아웃에 대해서 알아보겠습니다. 리니어 레이아웃을 보통 가장 많이 사용하며 이 레이아웃으로만으로도 웬만한 앱은 만들 수 있습니다. 리니어 레이아웃에서 빠질 수 없는게 방향 설정하기 입니다. 방향 설정은 리니어 레이아웃에서 꼭 필요한 속성으로, 뷰를 차례대로 추가할 때 가로 방향으로 할 것인지 또는 세로 방향으로 할 것인지를 지정할 수 있습니다. 리니어 레이아웃을 처음 추가했을 때는 기본 값이 세로방향으로 되어 있습니다. 리니어 레이아웃 안에 세 개의 버튼을 순서대로 추가할 경우에 XMl과 자바 코드를 구성하는 방법은 다음과 같습니다.



LinearLayout_vertical.xml 

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:orientation="vertical"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity" >


    <Button

        android:id="@+id/button01"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="버튼1" />

    

    <Button

        android:id="@+id/button02"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="버튼2" />

    

    <Button

        android:id="@+id/button03"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="버튼3" />


</LinearLayout>



위 속성에 보면 android:orientation="vertical" 보이시나요? vertical 은 수직방향으로 레이아웃을 구성하겠다는 의미입니다.


프로젝트를 실행하면 다음의 그림과 같이 나오게 됩니다.





버튼이 세로(수직) 방향으로 내려오네요. 그렇다면 가로 방향은 어떻게 하면 될까요? 단순히 리니어 레이아웃의 orientation 속성 값만 'horizontal'로 바꾸면 됩니다. 속성을 바꾼 후에 실행해 보면 다음과 같은 화면을 볼 수 있습니다.





그런데 에뮬레이터에 보이는 화면을 보면 세 개의 버튼 중에 첫번째 버튼만 보이는 것을 알 수 있습니다. 왜 그럴까요? 그 이유는 버튼들 가로 속성을 match_parent를 했기 때문입니다. 그러므로 리니어 레이아웃을 세로 방향으로 했을때는 정상적으로 보이지만 가로방향을 했을때에는 버튼 2, 3이 버튼1에 가려지게 되는것입니다. 이걸 정상적으로 볼려면 버튼들 속성을 바꿔주면 됩니다. 버튼들의 각각 속성인 android:layout_width="match_parent" 를 android:layout_width="wrap_content"로 바꿔 보겠습니다.



네...이제 화면이 정확하게 나오네요.


다음 포스팅에서는 리니어 레이아웃을 자바코드로 만드는 방법을 알아보도록 하겠습니다.


Posted by 정윤문경아빠