2016-06-09 158 views
2

我在android中使用NavigationDrawer。其工作正常。现在我想更改NavigationDrawer后台按钮的图像,所以我使用这个mDrawerToggle.setDrawerIndicatorEnabled(false); 它隐藏默认的后台按钮图像。现在改变图像使用这个mDrawerToggle.setHomeAsUpIndicator(R.mipmap.ic_launcher); ,但点击自定义导航后退按钮抽屉不工作。如何管理?导航抽屉后退按钮单击Android中的侦听器

我的代码是

public void setUp(int fragmentId, DrawerLayout drawerLayout, final Toolbar toolbar) { 
    containerView = getActivity().findViewById(fragmentId); 
    mDrawerLayout = drawerLayout; 
    mDrawerToggle = new ActionBarDrawerToggle(getActivity(), drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) { 
     @Override 
     public void onDrawerOpened(View drawerView) { 
      is= false; 
      super.onDrawerOpened(drawerView); 

      getActivity().invalidateOptionsMenu(); 
     } 
     @Override 
     public void onDrawerClosed(View drawerView) { 
      is= true; 
      super.onDrawerClosed(drawerView); 

      getActivity().invalidateOptionsMenu(); 
     } 
     @Override 
     public void onDrawerSlide(View drawerView, float slideOffset) { 
      super.onDrawerSlide(drawerView, slideOffset); 

     } 
    }; 

    mDrawerToggle.setHomeAsUpIndicator(R.mipmap.ic_launcher); 
mDrawerToggle.setDrawerIndicatorEnabled(false); 

    mDrawerLayout.setDrawerListener(mDrawerToggle); 
    mDrawerLayout.post(new Runnable() { 
     @Override 
     public void run() { 
      mDrawerToggle.syncState(); 
     } 
    }); 


} 
+0

尝试看看这里http://stackoverflow.com/questions/26582075/cannot-catch-toolbar-home-button-click-event – lubilis

+0

只要把你的代码在这里..所以我可以纠正它.. –

回答

0

要改变NavigationDrawer后退按钮的图标,你需要下面的方法调用,并且图像RESOURCEID:

mDrawerToggle.setHomeAsUpIndicator(resId); 

和setDrawerIndicatorEnabled()方法不应设置为虚假更新图标:

mDrawerToggle.setDrawerIndicatorEnabled(false); 

因为是setDrawerIndicatorEnabled(),设置为false它会做两两件事:

  1. 禁用HomeAsUpIndicator图标
  2. 禁用clickListener。

你也可以用动作条试试吧:

下面的功能在Android的API级别18和上添加。

ActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator); 

如果使用支持库,试试这个:

getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator); 

你也可以用样式试试吧:

“向上” 启示指标由绘制提供在主题的homeAsUpIndicator属性中指定。要使用自己的自定义版本覆盖它,它会是这样的:

<style name="Theme.MyFancyTheme" parent="android:Theme.Holo"> 
    <item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item> 
</style> 

如果你与你的应用程序,支持预3.0确保你把这个版本的自定义主题的值-V11或相似。

,如果它仍无法正常工作,您可以通过更换尝试:

<item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item> 

有:

<item name="homeAsUpIndicator">@drawable/my_fancy_up_indicator</item> 
+0

我想打开和关闭setHomeAsUpIndicator中设置的自定义图像上的抽屉。这是怎么可能的,因为我添加setDrawerIndicatorEnabled false为隐藏默认图标 – aj0822ArpitJoshi

+0

,它也禁用点击事件 – aj0822ArpitJoshi

+0

是的先生,我尝试它..我改变setHomeAsUpIndicator图像和setDrawerIndicatorEnabled true为clickListener,但它显示默认的后扣图像 – aj0822ArpitJoshi

0

添加到您的选项菜单中选择收听。

@覆盖

public boolean onOptionsItemSelected(MenuItem item) { 
    Intent intent; 
    switch (item.getItemId()) { 

     case android.R.id.home: 
      onBackPressed(); 
      break; 

    } 
    return true; 
}