본문 바로가기
프로그래밍 놀이터/안드로이드, Java

Android GridLayout Tutorial

by 돼지왕 왕돼지 2014. 6. 10.
반응형



 Android GridLayout Tutorial

 

Android GridLayout Tutorial


점점 화면에 표시하는 UI 가 많아지면서 Layout 의 중첩 ( overdrawing ) 으로 성능 영향이 생기기 시작했다.

RelativeLayout 을 통해 이를 방지하는 tutorial 혹은 guide 들이 많이 나오기는 했지만,

이는 xml 코드(?) 를 엄청 복잡하게 만들고, 유지보수 또한 어려워지기 쉽상이다.


그래서 ICS 부터 GridLayout 이라는 새로운 layout 이 도입되었다.

물론 support-v7 를 통해 ICS 이전 버전에서도 GridLayout 을 이용할 수 있다.


http://developer.android.com/reference/android/widget/GridLayout.html


GridLayout 은 Web 의 Table 을 잘 다뤄본 사람에게는 친숙할 것이다.


GridLayout 의 xml 주요 속성들은...


android:orientation="horizontal | vertical"

android:columnCount="5" // 최대 갯수

android:rowCount="5" // 최대 갯수

android:alignmentMode="alignBounds | alignMargins"

android:columnOrderPreserved="true | false" // 열 인덱스 오름차순 배치

android:rowOrderPreserved="true | false" // 행 인덱스 오름차순 배치

android:userDefaultMargins="true | false" // 기본 마진 사용여부.



GridLayout ChildView 의 xml 속성 ( GridLayout.LayoutParams )


android:layout_column="3" // 열 index

android:layout_row="3" // 행 index

android:layout_columnSpan="2"

android:layout_rowSpan="2"

android:layout_gravity="center" 


소스 출처 : http://developer.samsung.com/android/technical-docs/GridLayout-in-Android


<?xml version="1.0" encoding="utf-8"?>

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

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:columnCount="4"

    android:rowCount="4" >


    <TextView

        style="@style/textViewStyle"

        android:text=" R 1, C 1 " />

    <TextView

        style="@style/textViewStyle"

        android:text=" R 1, C 2 " />

    <TextView

        style="@style/textViewStyle"

        android:layout_gravity="fill"

        android:layout_rowSpan="2"

        android:gravity="center"

        android:text=" R 1, C 3 " />

    <TextView

        style="@style/textViewStyle"

        android:text=" R 1, C 4 " />

    <TextView

        style="@style/textViewStyle"

        android:text=" R 2, C 1 " />

    <TextView

        style="@style/textViewStyle"

        android:text=" R 2, C 2 " />

    <TextView

        style="@style/textViewStyle"

        android:text=" R 2, C 4 " />

    <TextView

        style="@style/textViewStyle"

        android:text=" R 3, C 1 " />

    <TextView

        style="@style/textViewStyle"

        android:text=" R 3, C 2 " />

    <TextView

        style="@style/textViewStyle"

        android:layout_gravity="fill_horizontal"

        android:text=" R 3, C 3 modify " />

    <TextView

        style="@style/textViewStyle"

        android:text=" R 3, C 4 " />

    <TextView

        style="@style/textViewStyle"

        android:text=" R 4, C 1 " />

    <TextView

        style="@style/textViewStyle"

        android:text=" R 4, C 2 " />

    <TextView

        style="@style/textViewStyle"

        android:layout_gravity="fill_horizontal"

        android:text=" R 4, C 3 " />

    <TextView

        style="@style/textViewStyle"

        android:text=" R 4, C 4 " />

</GridLayout>


Android GridLayout Tutorial






반응형

댓글