0

J'ai changé this navigation drawer library en tant que mikepenz's material drawer library. Parce que la première bibliothèque donnait une erreur quand j'importe une bibliothèque que je veux utiliser. Mais à la première bibliothèque que je menais les éléments de tiroir navigaiton cliquez ci-dessous:Comment puis-je créer un fragment sans écrasement en plus de mon activité?

case 2 : 

    FragmentManager mFragmentManager = getSupportFragmentManager(); 
    Fragment mFragment = new PM_Fragment().newInstance(mHelpLiveo.get(position).getName()); 

    if (mFragment != null){ 
     mFragmentManager.beginTransaction().replace(R.id.container, mFragment).commit(); 
    } 

    break; 

Pour ma deuxième bibliothèque, je suis arrivé « R.id.container ne pouvait trouver » erreur. Je suppose que l'identifiant du conteneur est créé à l'intérieur de la bibliothèque. Pour cette raison, je suis en train de mettre un identifiant à remplacer. Donc, je mets le premier id de ma mise en page de activity_main comme ci-dessous:

case 2: 
    mFragmentManager = getSupportFragmentManager(); 
    mFragment = new PM_Fragment().newInstance(String.valueOf(position)); 

    if (mFragment != null) { 
     mFragmentManager.beginTransaction().replace(R.id.content_frame, mFragment).commit(); 
    } 

    break; 

et mon R.id.content_frame vient de mon activity_main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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/content_frame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity"> 

<include 
    android:id="@+id/toolbar1" 
    layout="@layout/toolbar"/> 

<TextView 
    android:id="@+id/helloid" 
    android:text="@string/hello_world" android:layout_width="wrap_content" 
    android:layout_below="@id/toolbar1" 
    android:layout_height="wrap_content" 
    android:textSize="25dp"/>... 

Mais lorsque je clique sur un élément nouveau fragment est écrit en haut de ma présentation activity_main.xml. Voici la capture d'écran ma: D

enter image description here

Toute aide serait appréciée.

+0

@Mike M, mais cela signifie que je dois créer navigat tiroir ionique pour tous les fragments. Parce que le tiroir de navigation obtient la barre d'outils avec ce code: 'new DrawerBuilder(). WithToolbar (barre d'outils)'. donc si je crée une barre d'outils pour chacun, je dois également créer un tiroir de navigation. – melomg

+1

Ouais, je n'avais pas réalisé ce que vous essayez de faire quand j'ai d'abord commenté. C'est pourquoi je l'ai supprimé. Ajinkya est sur la bonne voie. Vous devez ajouter un ViewGroup vide dans votre disposition 'activity_main' pour contenir les Fragments. –

Répondre

1

content_frame est id de votre des thats principaux de mise en page d'activité pourquoi il se passe utiliser une nouvelle disposition relative et lui donner id content_frame

1

Je suppose que l'un des problèmes est que vous insérez le fragment dans une mise en page relative, alors qu'une mise en page d'image serait plus appropriée; Merci, je vous suggère d'utiliser la vue de navigation et la disposition des tiroirs Android widgets fournis par Google au lieu de bibliothèques tierces, il est vraiment facile de les utiliser, si vous avez besoin de plus d'informations sur la navigation et comment l'utiliser s'il vous plaît reportez-vous à la documentation officielle

Voici un lien vers la page de développeur Google:

http://developer.android.com/reference/android/support/design/widget/NavigationView.html

+0

Aucune de ces suggestions n'aborde le problème du PO. –

+0

Mettre en place une disposition de trame vide dans le fichier XML fourni comme exemple et l'utiliser comme conteneur pour la transaction de fragment résoudrait le problème; la partie de la mise en page qui est maintenant dans la mise en page relative doit être placée dans un fichier de mise en page différent, comme vous l'avez dit, et chargée dynamiquement lorsque l'activité commence à être présentée comme fragment "maison". serait préférable d'utiliser des widgets appropriés, comme la disposition des tiroirs et les vues de navigation, qui ont été pensés pour cette situation particulière; "vous avez raison de dire que ma réponse n'était pas si centrée sur le problème – dometheshooter

+1

" mettre une disposition de cadre vide dans le fichier XML fourni comme exemple et l'utiliser comme conteneur pour la transaction de fragment résoudrait le problème "- Vous devriez mettre quelque chose comme ça dans la réponse. En l'état, il semble que vous disiez que le problème est que l'OP utilise un RelativeLayout au lieu d'un FrameLayout. –