[ERLEDIGT] Fragmente in NavigationView

FalkeNr1

FalkeNr1

Neues Mitglied
3
Hi,
mein Plan ist es eigentlich einfach, durch das Anklicken der unterschiedlichen Einträge im NavigationView unterschiedliche Fragmente zu öffnen.
Um das zu erreichen, habe ich meinen vorhandenen Code mit Hilfe des folgendem Tutorials ausgebaut:
Fragment Navigation Drawer | CodePath Android Cliffnotes

Nun funktioniert das Ganze leider nicht. Es bleibt dauerhaft das Layout der MainActivity sichtbar. Dieses soll allerdings durch die Layouts der Fragmente ersetzt werden.

Hier meine Codeschnipsel:
Code:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <include
            layout="@layout/app_bar_main"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <FrameLayout
            android:id="@+id/frameLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </LinearLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer" />

</android.support.v4.widget.DrawerLayout>
Code:
@SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        int id = item.getItemId();
        FragmentManager manager = getSupportFragmentManager();

        if (id == R.id.nav_numbers) {
            Fragment fragment = null;
            Class fragmentClass = NumbersFragment.class;
            try {
                fragment = (Fragment) fragmentClass.newInstance();
            } catch(Exception e) {
                e.printStackTrace();
            }

            manager.beginTransaction().replace(R.id.frameLayout, fragment).commit();
        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
Code:
public class NumbersFragment extends Fragment {

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_numbers, container, false);
    }
}

Würde mich wirklich freuen, wenn jemand meinen Fehler findet...
Vielen Dank schon mal im Voraus!

MfG
Falke
 
Okay... Habe den Fehler gefunden.
Das <include> im Layout der MainActivity hat das FrameLayout überlagert, wesshalb das nicht angezeigt wurde.
Habe das FrameLayout aus dem MainActivity Layout in das Layout "app_bar_main" verschoben und steuere es nun dort an, wesshalb nichts mehr überlagert wird.

Danke an alle, die sich die Mühe gemacht haben, sich das hier durchzulesen und sich den Kopf darüber zu zerbrechen.
Habe ja leider nicht genug Code zur Verfügung gestellt, allerdings war ich der Meinung, dass noch mehr dann wirklich zu viel wird :)
 

Ähnliche Themen

D
Antworten
23
Aufrufe
2.542
Data2006
D
W
Antworten
1
Aufrufe
849
jogimuc
J
OnkelLon
Antworten
13
Aufrufe
1.983
OnkelLon
OnkelLon
Zurück
Oben Unten