2016-08-21 4 views
2

Ich bin mit der Material-Navigationsschublade rum, aber es rutscht nicht heraus. Wenn ich auf das Symbol oben links lege, wird die Navigationsleiste nicht angezeigt. Ich kann nicht herausfinden, was ich vermisse.Android-Navigationsschublade rutscht nicht aus

Es gleitet korrekt aus, wenn ich auf dem Bildschirm von links nach rechts wische. Es wird jedoch nicht angezeigt, wenn Sie auf das Schubladensymbol in der oberen linken Ecke klicken.

Dies ist Teil meiner Aktivität:

public class MainActivity extends AppCompatActivity { 
    private DrawerLayout drawerLayout; 
    private Toolbar toolbar; 
    private SectionsPagerAdapter mSectionsPagerAdapter; 
    private ViewPager mViewPager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     getSupportActionBar().setDisplayShowHomeEnabled(true); 
     getSupportActionBar().setHomeButtonEnabled(true); 
     // Create the adapter that will return a fragment for each of the three 
     // primary sections of the activity. 
     mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); 

     // Set up the ViewPager with the sections adapter. 
     mViewPager = (ViewPager) findViewById(R.id.container); 
     mViewPager.setAdapter(mSectionsPagerAdapter); 

     initNavigationDrawer(); 
    } 

    public void initNavigationDrawer() { 

     NavigationView navigationView = (NavigationView)findViewById(R.id.navigation_view); 
     navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
      @Override 
      public boolean onNavigationItemSelected(MenuItem menuItem) { 

       int id = menuItem.getItemId(); 

       switch (id){ 
        case R.id.home: 
         Toast.makeText(getApplicationContext(),"Home", Toast.LENGTH_SHORT).show(); 
         drawerLayout.closeDrawers(); 
         break; 
        case R.id.settings: 
         Toast.makeText(getApplicationContext(),"Settings",Toast.LENGTH_SHORT).show(); 
         break; 
        case R.id.logout: 
         finish(); 
       } 
       return true; 
      } 
     }); 

     View header = navigationView.getHeaderView(0); 
     TextView tv_email = (TextView)header.findViewById(R.id.tv_email); 
     tv_email.setText("[email protected]"); 
     drawerLayout = (DrawerLayout)findViewById(R.id.drawer); 

     ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle(this,drawerLayout,toolbar,R.string.drawer_open,R.string.drawer_close){ 

      @Override 
      public void onDrawerClosed(View v){ 
       super.onDrawerClosed(v); 
      } 

      @Override 
      public void onDrawerOpened(View v) { 
       super.onDrawerOpened(v); 
      } 
     }; 
     drawerLayout.addDrawerListener(actionBarDrawerToggle); 
     actionBarDrawerToggle.syncState(); 
    } 
} 

Hier die activity_main ist:

<?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" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

<android.support.design.widget.CoordinatorLayout 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/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="garagemonitor.studiosunmedia.garage.MainActivity"> 
     <android.support.design.widget.AppBarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:theme="@style/AppTheme.AppBarOverlay"> 

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

    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="end|bottom" 
     android:layout_margin="@dimen/fab_margin" 
     android:visibility="invisible" 
     android:src="@android:drawable/ic_dialog_email" /> 
</android.support.design.widget.CoordinatorLayout> 
    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation_view" 
     android:layout_height="match_parent" 
     android:layout_width="wrap_content" 
     android:layout_gravity="start" 
     app:headerLayout="@layout/nav_header" 
     app:menu="@menu/menu_navigation"/> 
</android.support.v4.widget.DrawerLayout> 

Toolbar.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="?attr/colorPrimary" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark" 
    android:elevation="4dp"> 

</android.support.v7.widget.Toolbar> 
+0

Ist es herausrutschen, wenn Sie von links nach rechts streichen? – Vucko

+0

ja, wenn ich von links nach rechts wische von links nach rechts. Wie kann ich rutschen, wenn ich auf die schublade taste oben links –

Antwort

0

Versuchen Hinzufügen der Logik manuell:

toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     drawerLayout.openDrawer(GravityCompat.START); 
    } 
}); 

Dies sollte funktionieren.

+1

anstelle von 'navigationView' ich benutze 'drawerLayout' und es funktionierte –

+0

Ah, okay, cool. Ich habe nicht auf den variablen Namen geachtet :) denke nach oben, wenn es dir geholfen hat, bedeutet es für mich. Vielen Dank. – Vucko

0

in Ihrem Code, über setSupportActionBar (Toolbar), verwenden

Symbolleiste = (Toolbar) findViewById (R.id.toolbar);

statt:

Toolbar Symbolleiste = (Toolbar) findViewById (R.id.toolbar);

Sie sind neu initialisiert Symbolleiste Variable gibt, was in onCreate Methode führt dazu, dass Sie andere Symbolleiste Variable verwenden als in initNavigationDrawer

Verwandte Themen