2016-06-09 114 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; 
}