2016-01-13 3 views
2

Когда я пытаюсь показать навигационный ящик при выполнении действия салфетки, иногда он не открывается (вы можете увидеть его на скриншоте), он появляется чаще, когда я прокручиваю медленно. Он появляется в примере приложения, предоставленном google.Android-навигаторПросмотрите салфетки, иногда не открывая

enter image description here

MenuActivity.java

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_menu); 

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

    // Burger button 
    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(); 

    drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); 

    // Getting navigation view from activity_menu.xml 
    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 

    // Getting Navigation Header resources 
    View headerLayout = navigationView.getHeaderView(0); 
    emailTextViewNavHeader = (TextView) headerLayout.findViewById(R.id.textViewEmailNavHeaderMenu); 
    nameTextViewNavHeader = (TextView) headerLayout.findViewById(R.id.textViewNameNavHeaderMenu); 
    imageViewProfileNavHeader = (CircularImageView) headerLayout.findViewById(R.id.imageViewProfileNavHeaderMenu); 

    this.setViewResources(); 
    this.fillInReflexionMenuList(); 
} 

activity_menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout   
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" 
android:background="#555555"> 

<include 
    android:id="@+id/main" 
    layout="@layout/app_bar_menu" 
    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="start" 
    android:fitsSystemWindows="true" 
    app:headerLayout="@layout/nav_header_menu" 
    app:menu="@menu/activity_menu_drawer" /> 

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

Same в мое приложение, а также получили такое же поведение в приложениях Google. Вероятно, ошибка. –

ответ

0

Используйте следующие коды для обработки и проверки:

Во-первых, добавьте его выше.

private DrawerLayout drawerLayout;  

И в OnCreate метод:

navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
     @Override 
     public boolean onNavigationItemSelected(MenuItem menuItem) { 

      if (menuItem.isChecked()) menuItem.setChecked(false); 
      else menuItem.setChecked(true); 
      drawerLayout.closeDrawers(); 
      switch (menuItem.getItemId()) { 

       case R.id.home: 
        // do some stuffs 
        return true; 

       default: 
        return true; 
      } 
     } 
    }); 

Добавить это тоже, я думаю, что это будет фиксированной с этими кодами:

drawerLayout = (DrawerLayout) findViewById(R.id.drawer); 
      ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.openDrawer, R.string.closeDrawer) { 

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

       @Override 
       public void onDrawerOpened(View drawerView) { 
        super.onDrawerOpened(drawerView); 
       } 
      }; 
     drawerLayout.setDrawerListener(actionBarDrawerToggle); 
      actionBarDrawerToggle.syncState(); 
+0

Это не работает, у меня такой же результат – Max

+0

Получают ли вы какие-либо предупреждения или ошибки на логарифмах? – Mohsen

+0

Нет, у меня ничего нет – Max