Значок ящика не реагирует на щелчок

#android #drawerlayout

#Android #drawerlayout

Вопрос:

У меня есть DrawerToggle, чтобы показать DrawerLayout. Я делаю это таким образом:

 mDrawerLayout = findViewById(R.id.drawer_layout);
    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,0, 0) {
        @Override
        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
            invalidateOptionsMenu();
        }

        @Override
        public void onDrawerClosed(View drawerView) {
            super.onDrawerClosed(drawerView);
            invalidateOptionsMenu();
        }
    };
    mDrawerToggle.setDrawerIndicatorEnabled(false);
    Drawable drawable= ResourcesCompat.getDrawable(getResources(),R.drawable.menu,getTheme());
    mDrawerToggle.setHomeAsUpIndicator(drawable);
    mDrawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.i("David", "onClick");
            if (mDrawerLayout.isDrawerVisible(GravityCompat.START)) {
                mDrawerLayout.closeDrawer(GravityCompat.START);
            } else {
                mDrawerLayout.openDrawer(GravityCompat.START);
            }
        }
    });
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  

Но я не получаю ответа при нажатии на значок. Как я могу это исправить?

Ответ №1:

Вы не добавили код для открытия ящика. Добавьте приведенный ниже код в свой класс Activity:

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            drawerLayout.openDrawer(GravityCompat.START);
            return true;
    }
    return super.onOptionsItemSelected(item);
}
  

Следуйте:https://developer.android.com/training/implementing-navigation/nav-drawer