2013-05-16 95 views
0

我遇到菜單選項的問題。我正在使用操作欄sherlock,當我點擊選項菜單時,文本對齊在左側。
我希望我的選項菜單的文本首先與右側的圖標對齊。文本對齊圖標菜單操作欄sherlock

的想法:
enter image description here
下面是選項菜單代碼:

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){ 
     super.onCreateOptionsMenu(menu, inflater); 
     // TWEAK: FC when inflated from XML 
     searchItem = (MenuItem) menu.add(getResources().getString(R.string.menu_search)); 
     searchItem.setIcon(R.drawable.abs__ic_search); 
     searchItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); 
     // Create the SearchView 
     SearchView searchView = new SearchView(getActivity()); 
     searchView.setQueryHint(getResources().getString(R.string.search_hint)); 
     searchView.setOnQueryTextListener(this); 
     // Collapse when focus lost 
     searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() { 
      @Override 
      public void onFocusChange(View v, boolean hasFocus){ 
       if(hasFocus) { 
        mListener.OnSearchClickListener(); 
       } else { 
        searchItem.collapseActionView(); 
       } 
      } 
     }); 
     // Assign the SearchView to the menuItem 
     searchItem.setActionView(searchView); 
     final Context ct = getSherlockActivity().getBaseContext(); 
     SubMenu subMenu1 = menu.addSubMenu("Action Item"); 
     subMenu1.add("Sample").setOnMenuItemClickListener(new OnMenuItemClickListener() { 
      @Override 
      public boolean onMenuItemClick(MenuItem item){ 
//    Intent i = new Intent(getApplicationContext(), PlaceActivity.class); 
//    startActivity(i); 
       return false; 
      } 
     }); 
     subMenu1.add("Sample2").setOnMenuItemClickListener(new OnMenuItemClickListener() { 
      @Override 
      public boolean onMenuItemClick(MenuItem item){ 
       Intent i = new Intent(getSherlockActivity().getApplicationContext(), FragmentPagerSupport.class); 
       startActivity(i); 
       return false; 
      } 
     }); 
     subMenu1.add("Map").setOnMenuItemClickListener(new OnMenuItemClickListener() { 
      @Override 
      public boolean onMenuItemClick(MenuItem item){ 
       FChangeView(); 
       return false; 
      } 
     }); 
     //blabla 
     subMenu1.add("Help").setOnMenuItemClickListener(new OnMenuItemClickListener() { 
      @Override 
      public boolean onMenuItemClick(MenuItem item){ 
//    mMapFragment.FNearMe(); 
       return false; 
      } 
     }); 
     subMenu1.add("Current Location").setOnMenuItemClickListener(new OnMenuItemClickListener() { 
      @Override 
      public boolean onMenuItemClick(MenuItem item){ 
//    mMapFragment.FCurrentLocation(); 
       return false; 
      } 
     }); 
     MenuItem subMenu1Item = subMenu1.getItem(); 
     subMenu1Item.setIcon(R.drawable.menu); 
     subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);  
    } 

對我有什麼想法?
很高興,如果有代碼示例

回答

0

您將無法使用簡單的ActionBar或ActionBarSherlock來做到這一點。您將不得不自己處理菜單項點擊並顯示ListPopupWindow。提供ListPopupWindow一個適配器,用於顯示所描述的項目,就像您使用任何ListView一樣。

+0

謝謝你,我會試試.. – Dolphin