2014-09-01 27 views
0

我正在使用drawerlayout在我的應用程序中顯示左側菜單。我需要有抽屜圖標的白色背景。我用我自己的自定義圖標(menu_icon在下面的代碼)與白色背景,但仍然背景顯示爲灰色。以下是我的活動代碼。自定義ActionBarDrawerToggle

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 

     LayoutInflater inflater = (LayoutInflater) this 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View customActionBarView = inflater.inflate(R.layout.actionbar_custom, 
      null); 
    ActionBar actionBar = getActionBar(); 
    actionBar.setCustomView(customActionBarView); 
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, 
      ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME 
        | ActionBar.DISPLAY_SHOW_TITLE); 
    actionBar.setCustomView(customActionBarView, 
      new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 
        ViewGroup.LayoutParams.MATCH_PARENT)); 
     navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items); 


     navMenuIcons = getResources() 
       .obtainTypedArray(R.array.nav_drawer_icons); 

     mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
     mDrawerList = (ListView) findViewById(R.id.list_slidermenu); 

     navDrawerItems = new ArrayList<NavDrawerItem>(); 


     navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons 
       .getResourceId(0, -1))); 

     navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons 
       .getResourceId(1, -1))); 

     navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons 
       .getResourceId(2, -1))); 


     // Recycle the typed array 
     navMenuIcons.recycle(); 

     mDrawerList.setOnItemClickListener(new SlideMenuClickListener()); 

     // setting the nav drawer list adapter 
     navAdapter = new NavDrawerListAdapter(getApplicationContext(), 
       navDrawerItems); 
     mDrawerList.setAdapter(navAdapter); 

     // enabling action bar app icon and behaving it as toggle button 
     getActionBar().setDisplayHomeAsUpEnabled(true); 
     getActionBar().setHomeButtonEnabled(true); 

     mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, 
       R.drawable.menu_icon, // nav menu toggle icon 

       R.string.app_name, // nav drawer open - description for 
            // accessibility 
       R.string.app_name // nav drawer close - description for 
            // accessibility 
     ) { 
      public void onDrawerClosed(View view) { 
       getActionBar().setTitle(mTitle); 
       // calling onPrepareOptionsMenu() to show action bar icons 
       invalidateOptionsMenu(); 
      } 

      public void onDrawerOpened(View drawerView) { 
       getActionBar().setTitle(mDrawerTitle); 
       // calling onPrepareOptionsMenu() to hide action bar icons 
       invalidateOptionsMenu(); 
      } 
     }; 

     mDrawerLayout.setDrawerListener(mDrawerToggle); 

     if (savedInstanceState == null) { 
      // on first time display view for first nav item 
      displayView(0); 
     } 

    } 

我已經使用了自定義的操作欄,但同樣是沒有幫助的默認抽屜圖標顯示在我的自定義操作欄的左側和壓倒一切的白色背景對齊了。我第一次實現導航抽屜,所以不知道我是否缺少一些東西。請指教。

+0

這可以幫助你。退房 http://stackoverflow.com/questions/2944244/change-the-background-color-of-the-options-menu – 2014-09-01 04:15:31

回答

0

試試這個:

<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> 
</style> 

<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle"> 
    <item name="spinBars">true</item> 
    <item name="color">@android:color/black</item> 
</style> 
相關問題