xml을 이용해 Fragment이용하기.



Activity도 그렇듯, Fragment도 역시, 자바코드에서 생성하는 방법과, xml에서 생성하는 방법이 있습니다.

먼저, xml을 이용하여, Fragment를 추가하는 방법을 알아봅니다. 
굉장히 단순한 예제 입니다.

우리가 만들어볼 화면은 아래와 같습니다. 


위 아래 화면이 나누어져 있는 단순한 화면인데요,
이를 Fragment2개를 이용하여, 만들어 봅니다.

1. android sdk 3.0이상을 생성하여, 안드로이드 프로젝트를 생성하여 줍니다. 

2. res에 fragment1.xml을 생성하여 줍니다.
[ fragment1.xml ]

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

<LinearLayout

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

  android:orientation="vertical"

  android:layout_width="match_parent"

  android:layout_height="match_parent">

  <TextView

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:text="Fragment #1"

  android:gravity="center" />

</LinearLayout>


 2. res에 fragment2.xml을 생성하여 줍니다.
[ fragment2.xml ]

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

<LinearLayout

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

  android:orientation="vertical"

  android:layout_width="match_parent"

  android:layout_height="match_parent">

  <TextView

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:text="Fragment #2"

  android:gravity="center" />

</LinearLayout>

 
3. 자동 생성된 main.xml의 코드를 바꾸어 줍니다. 
[ main.xml ]

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

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

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent">

    <fragment

android:name="fragment.example01.Fragment1"

android:id="@+id/fragment1"

android:layout_weight="1"

        android:layout_width="fill_parent" 

        android:layout_height="0dip"  />

    <fragment

android:name="fragment.example01.Fragment2"

android:id="@+id/fragment2"

android:layout_weight="1"

        android:layout_width="fill_parent" 

        android:layout_height="0dip"  />

</LinearLayout>  


여기서 눈여겨 보아야 할것은, android:name="..." 부분이며, 여기서 나타내는 것은, Fragment클래스의 위치를 나타내 줍니다.
즉, fragment.example01패키지에 Fragment1, Fragment2 자바 파일이 존재하여야 하는 겁니다.

4. Fragment1을 생성하여 줍니다.
[ Fragment1.java ] 

package fragment.example01;


import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;


public class Frament1 extends Fragment {


@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

return inflater.inflate(R.layout.fragment1, container, false);

}

}


여기서, onCreateView는 Activity의 onCreate와 같은 역할을 한다고 보시면 됩니다.

5. Fragment2.java를 생성하여 줍니다.

Fragment2.java

package fragment.example01;


import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;


public class Frament1 extends Fragment {


@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

return inflater.inflate(R.layout.fragment1, container, false);

}

}

 

6. 어플리케이션을 실행시킵니다.
그러면, 위에도 올렸던, 그림이, 다음과 같이 짜잔하고 나옵니다. 

 
다음에는, xml을 이용하지 않고, 자바코드에서 fragment를 이용하는 법을 알아 봅니다. 


소스코드 :   
신고

'Programming > android/tablet' 카테고리의 다른 글

ActionBar에 메뉴 넣기.  (0) 2011.12.24
Action Bar 숨기기  (3) 2011.12.24
Fragment와 AddToBackStack  (0) 2011.12.24
java코드를 이용하여, Fragment사용하기.  (0) 2011.12.04
xml을 이용해 Fragment이용하기.  (9) 2011.12.04
fragment란?  (0) 2011.12.04