#ANDROID - Fragmentler ile SwipeTab
Evet bir önceki makalemizde fragment'den bahsetmiş ve ScrollTab ile ilgili bir uygulama yapmıştık.
Önceki makale: http://www.hcengiz.com/2015/10/android-fragmentler-ile-scrolltab_15.html
Daha detaylı bilgi için önceki makalemizi inceleyebilirsiniz. ScrollTab örneğinde yukarıdaki tab'lara tıklandığında fragmentleri değiştiremiyor, sadece parmak kaydırma hareketiyle fragmentler arasında geçiş yapabiliyorduk.
Bu uygulamamızda bu sorunu çözeceğiz. ActionBar kullanarak yukarıdaki tablara bastığımızda istediğimiz fragmente geçiş yapacağız.
Fragment kısmında diğer uygulamadan farklı olacak hiçbir şey yok, değişiklikler yine MainActivity kısmında olacak.
Hemen FragmenA.java, FragmentB.java, FragmentC.java, fragmena.xml, fragmentb.xml ve fragmentc.xml dosyalarımızı oluşturuyoruz.
fragmenta.xml dosyası:
fragmentb.xml dosyası:
fragmentc.xml dosyası:
.XML uzantılı dosyalarımızı hazırladık şimdi .JAVA uzantılı dosyalarımızı oluşturup bu Layoutlarımızı orada tanıtıyoruz.
FragmentA.java dosyası:
FragmentB.java dosyası:
FragmentC.java dosyası:
mainactiviy.xml dosyası:
MainActiviy.java dosyası:
Evet bu uygulamamızda MainActivity içerisinde PagerTitleStrip kullanmak yerine ActionBar kullanarak tabların üzerine basıldığında fragment değiştirme olayını da yapmış olduk.
Makale görseli:
Önceki makale: http://www.hcengiz.com/2015/10/android-fragmentler-ile-scrolltab_15.html
Daha detaylı bilgi için önceki makalemizi inceleyebilirsiniz. ScrollTab örneğinde yukarıdaki tab'lara tıklandığında fragmentleri değiştiremiyor, sadece parmak kaydırma hareketiyle fragmentler arasında geçiş yapabiliyorduk.
Bu uygulamamızda bu sorunu çözeceğiz. ActionBar kullanarak yukarıdaki tablara bastığımızda istediğimiz fragmente geçiş yapacağız.
Fragment kısmında diğer uygulamadan farklı olacak hiçbir şey yok, değişiklikler yine MainActivity kısmında olacak.
Hemen FragmenA.java, FragmentB.java, FragmentC.java, fragmena.xml, fragmentb.xml ve fragmentc.xml dosyalarımızı oluşturuyoruz.
fragmenta.xml dosyası:
<?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="match_parent" android:background="#ffcc00" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Bu Fragment A" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout>
fragmentb.xml dosyası:
<?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="match_parent" android:background="#245" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Bu Fragment B" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout>
fragmentc.xml dosyası:
<?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="match_parent" android:background="#931334" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Bu Fragment C" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout>
.XML uzantılı dosyalarımızı hazırladık şimdi .JAVA uzantılı dosyalarımızı oluşturup bu Layoutlarımızı orada tanıtıyoruz.
FragmentA.java dosyası:
package com.example.fragmentscrolltab; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class FragmentA extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.fragmenta, container, false); return view; } }
FragmentB.java dosyası:
package com.example.fragmentscrolltab; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class FragmentB extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.fragmentb, container, false); return view; } }
FragmentC.java dosyası:
package com.example.fragmentscrolltab; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class FragmentC extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.fragmentc, container, false); return view; } }
mainactiviy.xml dosyası:
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> </android.support.v4.view.ViewPager>
MainActiviy.java dosyası:
package com.example.fragmentswipetab; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; public class MainActivity extends FragmentActivity implements ActionBar.TabListener { ActionBar actionbar; ViewPager viewpager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewpager = (ViewPager) findViewById(R.id.pager); viewpager.setAdapter(new MyAdapter(getSupportFragmentManager())); viewpager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { actionbar.setSelectedNavigationItem(position); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); actionbar = getActionBar(); actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); ActionBar.Tab tab1 = actionbar.newTab(); tab1.setText("Tab 1"); tab1.setTabListener(this); ActionBar.Tab tab2 = actionbar.newTab(); tab2.setText("Tab 2"); tab2.setTabListener(this); ActionBar.Tab tab3 = actionbar.newTab(); tab3.setText("Tab 3"); tab3.setTabListener(this); actionbar.addTab(tab1); actionbar.addTab(tab2); actionbar.addTab(tab3); } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { viewpager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { } class MyAdapter extends FragmentPagerAdapter { public MyAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int i) { switch (i) { case 0: return new FragmentA(); case 1: return new FragmentB(); case 2: return new FragmentC(); } return null; } @Override public int getCount() { return 3; } } }
Evet bu uygulamamızda MainActivity içerisinde PagerTitleStrip kullanmak yerine ActionBar kullanarak tabların üzerine basıldığında fragment değiştirme olayını da yapmış olduk.
Makale görseli:

Hiç yorum yok :
Yorum Gönder