Android 如何设置菜单按钮的位置
所以我想做的是,让我们都知道的菜单按钮显示在右上角 当我在网上搜索时,我发现actionbar Sherlock符合我的需要 正如你从图片中看到的,我使用的代码在我的设计中添加了深蓝色的部分(我用我出色的绘画技巧在红色矩形中画出的部分),我希望这个按钮是一个绿色的圆圈,放置在绿色箭头(漂亮的电影:D)指向的区域 我用来显示这一点的唯一代码如下,它取自夏洛克演示:Android 如何设置菜单按钮的位置,android,menu,actionbarsherlock,android-actionbar,Android,Menu,Actionbarsherlock,Android Actionbar,所以我想做的是,让我们都知道的菜单按钮显示在右上角 当我在网上搜索时,我发现actionbar Sherlock符合我的需要 正如你从图片中看到的,我使用的代码在我的设计中添加了深蓝色的部分(我用我出色的绘画技巧在红色矩形中画出的部分),我希望这个按钮是一个绿色的圆圈,放置在绿色箭头(漂亮的电影:D)指向的区域 我用来显示这一点的唯一代码如下,它取自夏洛克演示: ActionMode mMode; @Override public void onCreate(Bundle savedInst
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) {
}
}
我似乎不知道这个设计是从哪里来的(可能是Sherlock框架),我怎样才能像我想的那样修改它
有什么想法吗,伙计们
编辑:
我找到的答案是使用不同的Sherlock样本来实现我的目标:
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);
}
对此类对象进行个性化设置的最佳方法是在其上设置自定义视图。也许您可以对自定义布局进行充气,该布局在右侧提供一个文本视图和一个按钮,而在左侧没有“完成”标记 这是中的一段代码
就像你不能改变旧版本的菜单出现在上面一样,我从来没有听说过改变菜单按钮的位置。顺便说一句,我们将一起等待更好的答案:)@Rob013好的,但我想要的是能够在红色矩形中设计该区域(因为它的设计来自夏洛克)。例如,我想删除左边的复选标记,并将该文本改为“以前的订单”。您是否尝试过这样做:?不幸的是,我无法使您的解决方案起作用…无论如何,我尝试了一种不同的方法来制作一个菜单按钮,并使用了另一个来自Android Sherlock的示例。(如您在我编辑的初始帖子中所见)
LayoutInflater inflater = LayoutInflater.from(getSherlockActivity());
View actionView = inflater.inflate(R.layout.actionmode, null);
ActionMode am = getSherlockActivity().startActionMode(mActionModeCallback);
am.setCustomView(actionView);