Anasayfa » Android » Android Fragment

Android Fragment

Fragment Activity android 3.0 dan itibaren daha çok tabletler için oluşturulsada telefonlar da da kullanılan acivity den daha da gelişmiş bir yapıya sahip parçalardır. Fragmentler kendilerine ait bir yaşam döngüsüne sahiptir.

Örneğin bir kullanıcı girişi yapan android programı yazdık. Daha sonra kullanıcı listelerine ait activite yi çalıştırdık listeden kullanıcı detayına tıkladık detay activitesini çalıştırdık. Bunu tablet ekranında düşünelim. Tablet ekranı telefonlardan daha geniş olduğu için kullanıcı listemizin yanında detay kısmını aynı anda gösterebiliriz. Diyelim başka bir activite de aynı layout’u kullanmak istiyorsak fragment kullanabiliriz.

Şimdi basit bir uygulama ile fragment yapısını inceleyelim.

 Fragment1Activity.java

package com.ademaktas;
import android.app.Activity;
 import android.app.FragmentManager;
 import android.app.FragmentTransaction;
 import android.os.Bundle;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.Button;
public class Fragment1Activity extends Activity {
 Button btn1,btn2;
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.fragment_layout1);
 btn1= (Button)findViewById(R.id.btn1);
 btn2= (Button) findViewById(R.id.btn2);
btn1.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View v){
 FragmentManager FM=getFragmentManager();
 FragmentTransaction FT=FM.beginTransaction();
 Fragment1_Bir F1= new Fragment1_Bir();
 FT.add(R.id.fragment1,F1);
 FT.addToBackStack("f1");
 FT.commit();
 }
 });
btn2.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View v){
 FragmentManager FM=getFragmentManager();
 FragmentTransaction FT=FM.beginTransaction();
 Fragment1_Iki F2=new Fragment1_Iki();
 FT.add(R.id.fragment2,F2);
 FT.addToBackStack("f2");
 FT.commit();
 }
 });
 }
 }

fragment_layout1.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    
    <Button 
        android:id="@+id/btn1"
        android:text="Fragment 1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"/>
    <Button android:id="@+id/btn2"
        android:text="Fragment 2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btn1"
        android:layout_marginTop="25dp"
        android:layout_alignLeft="@+id/btn1"/>
    <RelativeLayout
        android:id="@+id/fragment1"
        android:layout_below="@+id/btn2"
        android:layout_width="match_parent"
        android:layout_height="150dp">        
    </RelativeLayout>
    
    <RelativeLayout 
        android:id="@+id/fragment2"
        android:layout_below="@+id/fragment1"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        ></RelativeLayout>
    
</RelativeLayout>

Fragment1_Bir.java

package com.ademaktas;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Fragment1_Bir extends Fragment {    
    @Override    
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstaceState){
        View v= inflater.inflate(R.layout.fragment_layout1_bir,container,false);
        return v;
        
    }
}
Fragment1_Iki.java
package com.ademaktas;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Fragment1_Iki extends Fragment {    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState){
        View v=inflater.inflate(R.layout.fragment_layout1_iki,container,false);
        return v;
    }
}

fragment_layout1_bir.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:background="#0000aa"
    android:orientation="vertical" >    
</LinearLayout>

Fragment1_Iki.java

package com.ademaktas;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Fragment1_Iki extends Fragment {    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState){
        View v=inflater.inflate(R.layout.fragment_layout1_iki,container,false);
        return v;
    }
}

fragment_layout1_iki.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:orientation="vertical"
    android:background="#aa0000" >
</LinearLayout>

 

 

Cevapla

E-posta adresiniz yayınlanmayacak. Required fields are marked *

*


+ 1 = yedi

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>