2016-02-05 4 views
0

Это мой метод setUpToolbar. и он называется inCreate в mainActivity. мой вопрос в том, почему значок humberger не отображается на панели инструментов, а на панели инструментов отображается значок обратной навигации на панели инструментов.Значок гамбургера не отображается как значок по умолчанию на панели инструментов

это мой setUptoolbar способ.

private void setUpToolbar() { 

     Toolbar archiveToolbar = (Toolbar)findViewById(R.id.xmlToolbarMain); 
     setSupportActionBar(archiveToolbar); 

     getSupportActionBar().setDisplayShowTitleEnabled(false); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    } 

и это моя панель инструментов XML:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/xmlToolbarMain" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="#34465d" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      android:transitionName="actionBar" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
      /> 

и это мой стиль под значения реж:

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 


</resources> 

enter image description here

+0

Удалить 'getSupportActionBar(). SetDisplayHomeAsUpEnabled (true);' – camelCaseCoder

+1

он просто удаляет значок назад и ничего не заменяет (мой значок - значок humburger) с этим –

+0

Создаете ли вы NavigationDrawer с помощью 'DrawerLayout'? – camelCaseCoder

ответ

1

Для этой функции вам необходимо добавить объект ActionBarDrawerToggle и синхронизировать его с панели инструментов.

Что-то вроде этого:

public class DrawerActivity extends AppCompatActivity { 

private DrawerLayout drawerLayout; 
private ActionBarDrawerToggle drawerToggle; 

... 

private void setupDrawerLayout() { 
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.open, R.string.close); 
    drawerLayout.setDrawerListener(drawerToggle); 
} 

... 

@Override 
protected void onPostCreate(Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 
    drawerToggle.syncState(); 
} 

Это должно помочь.

1

вы должны добавить, что значок на добавление ниже кода в setUpToolbar метод

getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu);// whatever your icon name 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
+0

да, я знаю это. но я вижу в некотором коде, они не используют значок в drawable, как это https://github.com/mikepenz/LollipopShowcase/tree/master/app/src/main/res –

1

Добавьте это в ваш код:

toolbar.setNavigationIcon(R.drawable.hamburger); 
toolbar.setTitle(""); 
+0

да, я это знаю. но я вижу в некотором коде, они не используют значок в drawable, как это https://github.com/mikepenz/LollipopShowcase/tree/master/app/src/main/res –

+0

Да, это в некотором коде. Вам нужно создать значок в drawable-hdpi, drawable-mdpi, drawable-xdpi ... – Stanojkovic

0

Первый подход

вручную установить пользовательские гамбургер значок

getSupportActionBar().setIcon(R.drawable.your_hamburger_icon); 

или

Гамбургер для ActionBarDrawerToggle

Затем добавьте DrawerLayout и ActionBarDrawerToggle

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

  • Нет связанных вопросов^_^