ornegin ekranda bir yere tıkladıgımızda yeni bir pencere acıklmasını istiyoruz.Bunların birbirinden farklı ekranlarda olmasını istersek ACTIVITY kullanmamız gerekir.
Yeni acılacak ekranın aynı pencerede olmasını istiyorsak FRAGMENT kullanmalıyız.
ilk iki resim activity kullanımını gosteriyor.Bir kişiye tıkladıgımızda kişinin bilgileri yeni bir ekranda acılıyor.
Son resimde ise aynı ekranda acılıyor.Ekranda 3 tane fragment bulunmakta.
Fragmente Layout verme Using onCreateView() :
Yeni olsuturulan fragmente layout atamak iicin kullanılır.
public void onCreateView(LayoutInflate inflater,ViewGroup container,Bundle savedInstanceState){
return inflater.inflate(R.id.example_fragment,container,false);
}
OnCreateView
- container : fragment layoutun atanacagı parent ViewGroup.
- savedInstanceState : Eger Resume ya da pause edilmis bir fragmnet varsa onun bilgilerini tutan Bundle.
- inflate edilecek layoutun id si.
- parent of the inflated layout
- inflate edilen layoutun viewgroup a attach olup olmayacagını belirleyen boolean degeri.Burda false olmasının nedeni sistem zaten yeni layoutu viewgroup a attach eder.Biz true yazarsak redundant viewgroup yaratır.
ADDING FRAGMENT TO ACTIVITY
1.DECLARE FRAGMENT INSIDE ACTIVITY'S LAYOUT FILE :
Here is a layout file for activity with 2 fragments:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <fragment android:name="com.example.news.ArticleListFragment" android:id="@+id/list" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" /> <fragment android:name="com.example.news.ArticleReaderFragment" android:id="@+id/viewer" android:layout_weight="2" android:layout_width="0dp" android:layout_height="match_parent" /> </LinearLayout>
2.PROGRAMATICALLY ADD THE FRAGMENT TO EXISTING VIEWGROUP (MAIN ACTIVITY):
FragmentManager fragmentManager = getFragmentManager()
;
//Fragment transaction: transaction yapmak icin kullanılır.(add,remove,replace)
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction()
;
FragmentA fA = new FragmentA();
fragmentTransaction.add(R.id.group,fA,"fragment A");
fragmentTransaction.commit(); //yapılan degişikliklerin gecerli olmasını saglar.
Hiç yorum yok:
Yorum Gönder