2016-07-30 4 views
1

Я использую библиотеку ящиков mikepenz, но я хочу поменять значок и значок со стрелкой вниз по умолчанию на моем собственном ярлыке.Как изменить значок humberger на панели инструментов?

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

Может ли кто-нибудь мне помочь?

new DrawerBuilder() 
    .withActivity(this) 
    .withTranslucentStatusBar(false) 
    .withActionBarDrawerToggle(false) 
    .withToolbar(toolbar) 
    .addDrawerItems(
     //pass your items here 
    ) 
    .build(); 

-кода для HUMBURGER ICON:

getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(true); 

Ниже приведен код, который я нашел много раз, но я попробовал это также, но это не сработало

Drawable upArrow = getResources().getDrawable(R.drawable.my_drawable); 

     actionBar.setHomeAsUpIndicator(upArrow); 
     actionBar.setDisplayHomeAsUpEnabled(true); 
     actionBar.setHomeButtonEnabled(true); 

И когда я поиск Я также узнал, что вы не можете изменить значок, если вы передаете панель инструментов в конструкторе выдвижного ящика, чтобы кто-нибудь мог сказать мне, что я могу сделать?

ответ

1

Я не пробовал с этой библиотекой, но, попробуйте следующее:

ActionBar actionBar = getSupportActionBar(); 
     if (actionBar != null) { 
      final Drawable upArrow = getResources().getDrawable(R.drawable.my_drawable); 

      actionBar.setHomeAsUpIndicator(upArrow); 
      actionBar.setDisplayHomeAsUpEnabled(true); 
      actionBar.setHomeButtonEnabled(true); 
     } 
+0

Я попытался это, но он не работает –

+0

Хорошо, btw правильно отформатируйте свой вопрос, чтобы избежать downvotes. – Shaishav

0

Попробуйте это путем изменения следующие:

result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(true); 

в

result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(false); 

это отключение библиотеки значок по умолчанию, затем измените значок ...

getSupportActionBar().setHomeAsUpIndicator(R.drawable.my_drawable); 
1

В соответствии с этим link, вам необходимо удалить withToolbar() из DrawerBuilder, а затем вам придется самостоятельно открывать/закрывать.

Для этого вы можете сделать некоторые вещи, как этот

protected void onCreate(Bundle savedInstanceState) { 
     ... 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(false); 
     toggle.setDrawerIndicatorEnabled(false); 
     toggle.setHomeAsUpIndicator(R.drawable.ic_custom_drawer_icon); 
     ... 
    } 

Также вы должны были добавить панель инструментов навигации щелчок слушатель прослушивания событий щелчка по иконке пользовательского ящика.

protected void onCreate(Bundle savedInstanceState) { 
     ... 
     toggle.setToolbarNavigationClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
       if (drawer.isDrawerOpen(GravityCompat.START)) { 
        drawer.closeDrawer(GravityCompat.START); 
       } else { 
        drawer.openDrawer(GravityCompat.START); 
       } 
      } 
     }); 
     ... 
    } 

Вы можете обновить иконку динамически по мере необходимости, как

toggle.setHomeAsUpIndicator(R.drawable.ic_new_icon); 

Надеется, что это поможет вам.

0

private DrawerLayout drawerLayout; 
 
private ActionBarDrawerToggle actionBarDrawerToggle; 
 
Toolbar toolbar; 
 
String Drawer_Open,Drawer_Close; 
 

 
@Override 
 

 
protected void onCreate(Bundle savedInstanceState){ 
 
super.onCreate(savedInstanceState); 
 
setContentView(R.layout.activity_main); 
 
toolbar=(Toolbar)findViewById(R.id.toolbar); 
 
setSupportActionBar(toolbar); 
 
//set it button icon 
 
getSuppotActionBar().setDisplayHomeAsUpEnabled(true); 
 
//set it makes button Clickble 
 
getSuppotActionBar().setHomeButtonEnabled(true); 
 
//set your own icon by using this code 
 
getSuppotActionBar().setHomeAsUpIndicator(R.drawable.my_icon); 
 
drawerLayout=(DrawerLayout)findViewById(R.id.drawer_layout); 
 
actionBarDrawerToggle=new ActionBarDrawerToggle(this,drawerLayout,toolbar,Drawer_Open,Drawer_Close); 
 
drawerLayout.serDrawerListener(actionBarDrawerToggle); 
 
} 
 

 
}

Опять Есть ли у вас какие-либо п.л. получить Проконсультируйте меня здесь ....., надеюсь, что вы получили решение вашей проблемы ...