9

Aggiungo un Navigation Drawer a questa app che sto sviluppando e ho setacciato Internet; forum, stackoverflow, documentazione per sviluppatori Android, e ancora non ho trovato una grande risposta per questo.Utilizzo del cassetto di navigazione senza TitleBar o ActionBar

So che è possibile farlo senza utilizzare nessuna di queste cose. Quello che mi chiedo è come. Il modello NsMenuAdapter utilizza un titolo, e poi ci sono queste funzioni

getActionBar().setDisplayHomeAsUpEnabled(true); 
getActionBar().setHomeButtonEnabled(true); 

Quali sono chiaramente alla ricerca di una barra delle operazioni. Ho provato un paio di modelli che non funzionavano, il grande che ho appena provato è situato qui How to Add icons adjacent to titles for Android Navigation Drawer (che è correlato al link che ho qui sotto, il progetto è di gitHub qui https://github.com/gabrielemariotti/androiddev/tree/master/NavigationDrawer). Ora, la cosa fondamentale è che sto usando un layout personalizzato (ad esempio Layout relativo mescolato con Layout lineari) e sono davvero perso su quale dovrebbe essere il mio prossimo passo per farlo funzionare.

Sidenote: Quando ho solo il ListView nel mio main_activity.xml (l'implementazione per il Navigation Drawer), scorre correttamente fuori come si suppone. Ma non posso per la vita di me capire come popolare con i dati. Fondamentalmente ho bisogno di 3 intestazioni con elementi di navigazione selezionabili, con icone accanto agli elementi.

Mi sono rivolto a questo modello per la maggior parte delle mie intuizioni su come farlo tramite i layout relativi http://gmariotti.blogspot.com/2013/05/creating-navigation-drawer.html Ma usano le barre di azione/titolo che è ciò che mi spinge davvero a fare un ciclo.

+0

I pensa che questo potrebbe ti aiuta a consultare questa http://stackoverflow.com/questions/20823623/how-to-implement-navigation-drawer-without-action-bar-but-opens-the-navigation- s –

risposta

5

So che è possibile farlo senza utilizzare nessuna di queste cose. Quello che mi chiedo è come.

Passo # 1: Seguire le istruzioni per using DrawerLayout, come ad esempio i passaggi in this training guide, saltando tutto ciò che riguarda la barra delle azioni.

Passaggio n. 2: Nessun passaggio n. 2.

Mentre DrawerLayoutpuò può funzionare con la barra delle azioni, non è necessario e richiede effettivamente un'ulteriore configurazione.

+0

Sì, grazie. Ho letto più volte questi riferimenti, questa era la mia ultima fermata, quindi la domanda. Anche se apprezzo la tua risposta, l'approccio "calcola se stessi" non è stato il motivo per cui sono venuto qui. Avevo bisogno di aiuto e intuizione per sapere se qualcuno sa come gestirlo, senza barre di azioni/barre del titolo e senza usare FragmentLayouts. Ma apprezzo comunque la tua risposta. – ThorinOakenshield

+0

@ThorinOakenshield: "Ho letto più volte questi riferimenti" - la guida alla formazione, in particolare, mostra come utilizzare un 'DrawerLayout' senza una barra delle azioni, semplicemente seguendo i primi tre passaggi. Se seguire i tre passaggi di un tutorial è "calcola te stesso", allora non c'è niente che qualcuno possa essere in grado di fare in una risposta StackOverflow che è meglio. – CommonsWare

+0

@ThorinOakenshield: "e non usare FragmentLayouts" - non c'è nulla in Android chiamato FragmentLayout. E se intendi "frammenti", tieni presente che nulla nella tua domanda si riferisce ai frammenti. – CommonsWare

13

In realtà è piuttosto semplice. Più facile che con ActionBar. Sto scrivendo la risposta quasi più semplice di layout

rendere la vostra xml qualcosa di simile:

<android.support.v4.widget.DrawerLayout  
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<!-- This is how your main page will look, just 2 buttons --> 

    <RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="100dp" > 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:onClick="onLeft" 
      android:text="left" /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:onClick="onRight" 
      android:text="right" /> 
    </RelativeLayout> 

<!-- Left Drawer --> 
    <RelativeLayout 
    android:id="@+id/whatYouWantInLeftDrawer" 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" > 

     <ListView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@android:color/background_dark" /> 
    <!-- you can have many more widgets here like buttons or labels --> 
    </RelativeLayout> 


<!-- Right Drawer --> 
    <RelativeLayout 
    android:id="@+id/whatYouWantInRightDrawer" 
    android:layout_width="200dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="right" > 

     <ListView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@android:color/holo_green_light" /> 
    <!-- you can have many more widgets here like buttons or labels --> 
    </RelativeLayout> 

</android.support.v4.widget.DrawerLayout> 

poi prendere la vostra attività o meno così:

public class MainActivity extends Activity { 

RelativeLayout leftRL; 
RelativeLayout rightRL; 
DrawerLayout drawerLayout; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
//  I'm removing the ActionBar. 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.activity_main); 

     leftRL = (RelativeLayout)findViewById(R.id.whatYouWantInLeftDrawer); 
     rightRL = (RelativeLayout)findViewById(R.id.whatYouWantInRightDrawer); 
     drawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout); 
    } 

    public void onLeft(View view) { 
     drawerLayout.openDrawer(leftRL); 
    } 

    public void onRight(View view) { 
     drawerLayout.openDrawer(rightRL); 
    } 
} 

Questo è tutto. Spero che sia d'aiuto.

+0

grazie salvato la mia giornata – manDroid

+0

Questo mi ha davvero aiutato. Grazie. – VVB

Problemi correlati