본문 바로가기

Programming/android/tablet

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
fragment란?  (0) 2011.12.04