2016-12-20 3 views
0

Ich habe eine Anwendung, die die Standard-Aktivität zeigt wie:Wie auf Knopfdruck die Schublade, wie im Bild laden klicken

default_activity

Wenn die Hamburger Symbol links öffnet Hauptnavigation geklickt Schublade:

navigation_drawer

Und wenn die FILTER-Taste öffnet ich eine weitere Schublade von rechts wie angeklickt:

filter

Ich weiß, wie die linke Navigationsleiste (alle Java-Codes und Layouts) angezeigt wird

Was ist der Code die Schublade für die Anzeige, die von der rechten Seite öffnet?

und auch ich möchte wissen, wie der On-Click-Listener eingerichtet ist, auch wenn die FILTER-Schaltfläche außerhalb der Symbolleiste ist?

Kann jemand helfen?

+0

Sie können dies eine Navigationsleiste https://developer.android.com/training/implementing-navigation/nav-drawer.html –

+0

mit erreichen für Seite benutzerdefinierten Layout erstellen bar und laden Sie es in die Navigationsleiste. –

+0

Mögliches Duplikat von [Navigationsschublade (Google+ vs. YouTube)] (http://stackoverflow.com/questions/11377472/navigation-drawer-google-vs-youtube) –

Antwort

1

Ändern Sie einfach den Wert von tools:openDrawer zu beenden (d.htools:openDrawer="end"), auch android:layout_gravity="end" in <android.support.design.widget.NavigationView> hinzuzufügen. Hier ist die Lösung.

activity_main.xml

<?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="end"> 

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

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

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

MainActivity.java

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     final DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
       this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
     drawer.setDrawerListener(toggle); 
     toggle.syncState(); 

     //Add this piece of code 
     toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if(drawer.isDrawerOpen(Gravity.RIGHT)){ 
        drawer.closeDrawer(Gravity.RIGHT); 
       }else{ 
        drawer.openDrawer(Gravity.RIGHT); 
       } 
      } 
     }); 
    } 
+0

Wenn Ihr Problem gelöst ist, dann klicken Sie einfach auf das (✓check) Zeichen. – MashukKhan

Verwandte Themen