Ich benutze den Standard Swipe Tab Fragment-Code, mit dem Android startet, wenn Sie eine neue Android-Anwendung starten. Ich habe herausgefunden, wie ich meine Daten ändern und die Tabs verwenden kann, aber ich habe noch nicht herausgefunden, wie man ein einfaches Fragment zu dem hinzufügt, was bereits vorhanden ist. Ich wollte eine Infobar oben auf den Tabs oder direkt unter ihnen hinzufügen. Ich bin sicher, es ist einfach, ich kann einfach nicht herausfinden, wie lol. Ich lerne anhand von Beispielen.Wie kann ich einem ViewPager ein Fragment hinzufügen? addView stürzt meine App ab
Ich habe versucht, Viewpager eine Ansicht hinzuzufügen, aber meine App stürzt ab, und ich glaube, ich mache es total falsch.
In meinem MainActivity: ...
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Set up the action bar.
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
mSectionsPagerAdapter = new SectionsPagerAdapter(
getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
SubBarFragment infobar = new SubBarFragment();
mViewPager.addView(infobar.getView());
.....[extra code for menus and things]
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
....[code to show specific tabs and return the tab's fragment]
infobarfragment.java
public class InfobarFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.infobar, container, false);
return view;
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<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" />
infobar.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="match_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_wifi" />
<TextView
android:id="@+id/statusText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Wifi Status Information" />
</LinearLayout>
Sie haben einen Adapter für den ViewPager, verwenden Sie die Methode getItem/instanciateItem (hängt davon ab, was Sie verwenden: Fragmente oder einfache Ansichten). Diese Methode gibt dem viewpager-Objekt alle erforderlichen Ansichten. – Andreas
können Sie mehr als ein Fragment im Adapter zurückgeben? Ich habe mir überlegt, wie man mit Hilfe von Santhosh Fragmente hinzufügen kann, aber es behandelt es nur als eine andere Seite, die ich durchwischen kann. Ich möchte, dass es beständig bleibt, egal auf welcher Seite ich bin. Ich wollte, dass es über den Tabs liegt, aber das ist nicht möglich. Es ist also okay für jetzt, denke ich. Gedanken? – CREW