2016-01-30 2 views
-1

Я пытаюсь использовать ящик для навигации Android с панелью действий AppCompatActivity. Но когда я реализую панель действий, в ней отсутствует значок, чтобы открыть навигационный ящик.Значок для открытия ящика навигации отсутствует в панели действий AppCompatActivity в Android

Это то, что я хочу, чтобы отображаться

enter image description here

Это скриншот моего текущего бара действий

enter image description here

Вы можете увидеть моя треска е ниже.

Это мой 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" 
    android:id="@+id/main_drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <!-- This LinearLayout represents the contents of the screen --> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <!-- The ActionBar displayed at the top --> 
     <include 
      layout="@layout/action_bar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

     <!-- The main content view where fragments are loaded --> 
     <FrameLayout 
      android:id="@+id/main_content" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </LinearLayout> 

    <!-- The navigation drawer that comes from the left --> 
    <!-- Note that `android:layout_gravity` needs to be set to 'start' --> 
    <android.support.design.widget.NavigationView 
     android:id="@+id/nvView" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:background="@android:color/white"/> 
     <!--app:headerLayout="@layout/nav_header" 
     app:menu="@menu/drawer_view" />--> 

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

Это мой action_bar.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

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

Это мой MainActivity

package com.blog.waiyanhein.llks.llks; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 

public class MainActivity extends AppCompatActivity { 

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

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 

Почему значок, чтобы открыть ящик для навигации, отсутствует с помощью моего кода?

+0

Ответ здесь может помочь: http://stackoverflow.com/questions/26754940/appcompatv7 -v21-навигационно-ящик-не-показ-гамбургер-значок. Удачи! –

+0

Спасибо. Я следил за этой ссылкой, и это сработало.Большое спасибо –

+0

Можете ли вы отправить ответ, указав на эту ссылку. Я получу ответ. Благодарю. –

ответ

-1

Вам может понадобиться включить:

actionBarDrawerToggle.syncState(); 

Ответ здесь может помочь:

Appcompatv7 - v21 Navigation drawer not showing hamburger icon

+0

В чем разница между моим ответом? – Mohsen

+1

Не нужно внедрять NavigationView. –

+0

Итак, OP может взглянуть на последнюю часть кода? 'actionBarDrawerToggle.syncState();' или если этот вопрос ... – Mohsen

0

Попробуйте этот код,

@Override 
public 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); 
} 
+0

Он показывает только кнопку возврата. Итак, как он откроет навигационный ящик? –

+0

'setDisplayShowHomeEnabled()' предназначен для отображения кнопки для входа в панель действий – Msp

+0

Я просто покажу домашнюю кнопку –

0

Вы не реализовали NavigationDrawer в вашем Activity я guess.i've была такая же проблема, и фиксируется с помощью следующего кода.

В вашем Activity:

private DrawerLayout drawerLayout; 

В вашем onCreate:

NavigationView navigationView = (NavigationView) findViewById(R.id.navigation_view); 
    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: 
        drawerLayout.closeDrawers(); 
        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(); 

strings.xml:

<string name="openDrawer">Navigation</string> 
    <string name="closeDrawer">Close Navigation</string> 

Затем он должен работать.

Смежные вопросы