Screen Slide mit ViewPager

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

CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Suche

Neueste Kommentare

  • 1 week 5 days ago
    How to Renew Let’s Encrypt SSL Certificate on Plesk via Ubuntu Shell

    Let’s Encrypt will only accept a wildcard via DNS challenge. 

    If your Plesk instance can’t create the _acme-challenge.example.com TXT (external DNS), the extension can’t complete validation and will show no success. 

  • 2 weeks 5 days ago
    Warning: Undefined array key "url" in Drupal\Core\Asset\CssCollectionOptimizerLazy->optimizeGroup()
    Warning: Undefined array key "url" in Drupal\Core\Asset\JsCollectionOptimizerLazy->optimizeGroup() 
  • 3 weeks ago
    Server install & config : Debian 12 + Plesk + Apache + nginx + MariaDB + Solr
    sudo timedatectl set-timezone Europe/Berlin
  • 4 weeks ago
    Warning: PHP Startup: Unable to load dynamic library 'apcu.so' ... cannot open shared object file: No such file or directory

    Try this:

  • 1 month 1 week ago
    List Cronjobs for all users (via for + crontab)

    Alternative (without warnings like "no crontab for dovecot") to see all tasks:

  • 1 month 1 week ago
    Install APCu (PHP 8.1, Plesk)

    php 8.3 apcu failed

    über Plesk hat es geklappt.

     

  • 1 month 1 week ago
    Install APCu (PHP 8.1, Plesk)

     

    install:

    # sudo apt install php-dev
    
  • 1 month 1 week ago
    pecl install apcu : phpize: not found / ERROR: `phpize' failed

    phpize

    # sudo apt install php-dev
    

     

    details

  • 1 month 1 week ago
    Install APCu (PHP 8.1, Plesk)

    Problem:

  • 2 months 4 weeks ago
    Install APCu (PHP 8.1, Plesk)

    Problem: