Hallo zusammen,
im folgenden Tutorial werde ich euch ein ganz einfaches Beispiel für einen neuen ViewPager vorstellen. Dieser arbeitet mit zwei Fragmenten, somit könnt ihr durch schnell durch die Fragmente wechseln.
Für einen Screen Slide benötigt man in Android einige Komponenten, in unserem Beispiel werden wir diese auf ein minimum beschränken, um die Anwendung so übersichtlich und einfach wie möglich zu gestalten.
Wir benötigen:
Eine Activity (vom Typ FragmentActivity)
Zwei Fragmente
Einen ViewPagerAdapter
Alle Dateien, die wir in diesem Tutorial besprechen, stehen unter als Anhang zur Verfügung. Jetzt können wir los legen.
1. ViewPagerAdapter
Wir werden mit der Klasse ViewPagerAdapter anfangen. Zu Beginn müssen die Support-Klassen importiert werden. Unsere Klasse ViewPagerAdapter erbt von der Oberklasse "FragmentsPagerAdapter". Ähnlich wie bei einem normalen Adapter, wird der FragmentsPagerAdapter dafür verwendet mehrere Seiten (Fragmente) einheitlich darzustellen.
Für die Implementierung unserer Klasse benötigen wir anfangs nur zwei Variablen, einmal eine Konstante "SEITENZAHL", welche die Anzahl unsere Seiten beinhaltet und einen String-Array Namens "fragmentTitel", welche wie der Name es schon sagt, die Titel der einzelnen Fragmente beinhaltet.
Beim Nutzen der Klasse "FragmentsPagerAdapter" müssen einige Methoden überschrieben werden, diese sind:
- getCount()
- getItem()
- getPageTitle()
In der Methode "getCount()" geben wir die Konstante "SEITENZAHL" zurück. Die Methode "getItem()" bestimmt, je nachdem welches Element beim ViewPager ausgewählt ist, das zuladende Fragment. Da wir in unserem Beispiel nur zwei Fragmente haben, wird zwischen den beiden Elementen unterschieden.
Die letzte Methode "getPageTitle()" gibt die Titel der einzelnen Fragmente wieder.
public class ViewPagerAdapter extends FragmentPagerAdapter {
final int SEITENZAHL = 2;
private String fragmentTitel[] = new String[] { "Erstes Fragment", "Zweites Fragment"};
public ViewPagerAdapter(FragmentManager fm)
{
super(fm);
}
@Override
public int getCount() {
return SEITENZAHL;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
FragmentTab1 fragmenttab1 = new FragmentTab1();
return fragmenttab1;
case 1:
FragmentTab2 fragmenttab2 = new FragmentTab2();
return fragmenttab2;
}
return null;
}
@Override
public CharSequence getPageTitle(int pos)
{
return fragmentTitel[pos];
}
}
Das war die Klasse ViewPagerAdapter. Jetzt kommen die zwei Fragmente unseres Projektes, "FragmentTab1" und "FragmentTab2". Diese beiden Fragmente sind leer, um unser Projekt weiterhin simpel zu halten. Die XML-Dateien unserer Fragmente beinhalten nur eine TextView.
public class FragmentTab1 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_fragment_tab1, container, false);
return view;
}
}
Weiter gehts mit der letzten Datei, nämlich der MainActivity. In der MainActivity erzeugen wir eine Instanz der Klasse "ViewPager", dieser verwendet unsere Klasse "ViewPagerAdapter".
Die XML-Datei unserer MainActivity beinhaltet einen ViewPager, welcher einen "PagerTabStrip" verwendet.
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager()));
}
}
Das war schon alles, wie bereits erwähnt ist das Beispiel sehr einfach gehalten, wenn ihr weitere Seiten hinzufügen wollt, müsst ihr lediglich das Array, die Konstante "SEITENZAHL" bearbeiten. Jedes neue Fragment wird in der Methode "getItem()" aufgenommen und das war es auch schon.
Viel Erfolg
Neuen Kommentar schreiben