2013-06-15 2 views
1

Так что я хочу, чтобы эта кнопка меню, которую мы все знаем, отображалась в верхнем правом углу.Как установить расположение кнопок меню

И, как я искал в Интернете, я обнаружил, что для меня характерна панель действий Sherlock.

Picture of how menu looks right now

Как вы можете видеть из него ПИК, код, который я использую, добавляет, что темно-голубой части в моей конструкции (тот, который я ilustrated в красном прямоугольнике, используя свои удивительные навыки рисования), и я хотите, чтобы эта кнопка была зеленым кругом, чтобы быть помещенной в область, где отображается зеленая стрелка (хороший фильм: D).

Единственный код, который я использовал для отображения это ниже, и он взят из демок Sherlock:

ActionMode mMode; 

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

    mMode = startActionMode(new AnActionModeOfEpicProportions()); 

} 

private final class AnActionModeOfEpicProportions implements ActionMode.Callback { 
     @Override 
     public boolean onCreateActionMode(ActionMode mode, Menu menu) { 
      //Used to put dark icons on light action bar 
    //  boolean isLight = SampleList.THEME == R.style.Theme_Sherlock_Light; 

      menu.add("Feedback") 
       .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); 

      menu.add("Share") 
       .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); 

      menu.add("Preferences") 
       .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); 

      menu.add("Refresh") 
       .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); 

      return true; 
     } 

     @Override 
     public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 
      return false; 
     } 

     @Override 
     public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 
      Toast.makeText(AndroidMenu.this, "Got click: " + item, Toast.LENGTH_SHORT).show(); 
      mode.finish(); 
      return true; 
     } 

     @Override 
     public void onDestroyActionMode(ActionMode mode) { 
     } 
    } 

Я не могу показаться, чтобы выяснить, где что конструкция приходит от (вероятно, в рамках Шерлока), и как я могу изменить его, как я хочу ...

Любые идеи парней?

EDIT:

Ответ, который я нашел, чтобы использовать другой Шерлока образец для моей цели:

public class SubMenus extends SherlockActivity { 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     SubMenu subMenu1 = menu.addSubMenu("Action Item"); 
     subMenu1.add("Sample"); 
     subMenu1.add("Menu"); 
     subMenu1.add("Items"); 

     MenuItem subMenu1Item = subMenu1.getItem(); 
     subMenu1Item.setIcon(R.drawable.ic_title_share_default); 
     subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 

     SubMenu subMenu2 = menu.addSubMenu("Overflow Item"); 
     subMenu2.add("These"); 
     subMenu2.add("Are"); 
     subMenu2.add("Sample"); 
     subMenu2.add("Items"); 

     MenuItem subMenu2Item = subMenu2.getItem(); 
     subMenu2Item.setIcon(R.drawable.ic_compose); 

     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     setTheme(SampleList.THEME); //Used for theme switching in samples 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.text); 
     ((TextView)findViewById(R.id.text)).setText(R.string.submenus_content); 
    } 
+0

Так же, как вы не можете изменить старое меню версии появиться сверху я никогда не слышал об изменении положения этой кнопки меню. Btw +1, и мы подождем вместе, чтобы получить лучшие ответы :) – Rob013

+0

@ Rob013 хорошо, но я хочу, чтобы уметь стилизовать эту область в красном прямоугольнике (дизайн, поскольку он происходит от sherlock). Например, я хочу удалить этот флажок слева, а вместо этого добавить текст «Предыдущие заказы». – Teshte

+0

Вы пробовали это: http://stackoverflow.com/questions/10863080/building-actionmode-with-custom-layout-in-actionbarsherlock? – Rob013

ответ

0

Лучший способ персонализации таких объектов является создание настраиваемого представления о них. Возможно, вы можете раздуть пользовательский макет, который предоставляет один TextView и кнопку справа, без метки «Готово» слева.

Это фрагмент кода из this

LayoutInflater inflater = LayoutInflater.from(getSherlockActivity()); 
View actionView = inflater.inflate(R.layout.actionmode, null); 

ActionMode am = getSherlockActivity().startActionMode(mActionModeCallback); 
am.setCustomView(actionView); 
+0

К сожалению, я не мог заставить ваше решение работать ... в любом случае я попытался использовать другой подход в своей цели сделать кнопку меню и использовать другой образец из Android Sherlock (как вы можете видеть в моем отредактированном исходном сообщении) – Teshte

Смежные вопросы