如何设置我的菜单按钮的位置 [英] How do i set my menu buttons location
问题描述
所以我想做的事情,就是有一个菜单按钮,我们都知道,要显示在右上角。
正如我在网上搜索,我发现,动作条福尔摩斯那种套房我的需求。
正如你可以看到他事先知情同意,我用code,补充说,深蓝色部分在我的设计(我在一个红色的长方形ilustrated用我真棒油漆技能之一),我想那个按钮这是一个绿色的圆圈,被放置在该区域的绿色箭头(不错的电影:D)。点
只有code,我用来显示这是下面,它取自夏洛特演示:
ActionMode mMode服务;
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的mMode = startActionMode(新AnActionModeOfEpicProportions());
}
私人final类AnActionModeOfEpicProportions实现ActionMode.Callback {
@覆盖
公共布尔onCreateActionMode(ActionMode模式,菜单菜单){
//用来把暗图标光行动起来吧
//布尔isLight = SampleList.THEME == R.style.Theme_Sherlock_Light;
menu.add(反馈)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.add(「股份」)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.add(preferences)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.add(刷新)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
返回true;
}
@覆盖
在prepareActionMode公共布尔(ActionMode模式,菜单菜单){
返回false;
}
@覆盖
公共布尔onActionItemClicked(ActionMode模式,菜单项项){
Toast.makeText(AndroidMenu.this,得到点击+项目,Toast.LENGTH_SHORT).show();
mode.finish();
返回true;
}
@覆盖
公共无效onDestroyActionMode(ActionMode模式){
}
}
我似乎无法找出其中的设计来自(可能是夏洛特框架),以及如何修改它像我想...
任何想法家伙?
编辑:
这是我找到的答案是使用一个不同的福尔摩斯样品为我的目标:
公共类的子菜单扩展SherlockActivity {
@覆盖
公共布尔onCreateOptionsMenu(功能菜单){
子菜单subMenu1 = menu.addSubMenu(行动项目);
subMenu1.add(样本);
subMenu1.add(菜单);
subMenu1.add(项目);
菜单项subMenu1Item = subMenu1.getItem();
subMenu1Item.setIcon(R.drawable.ic_title_share_default);
subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
子菜单subMenu2 = menu.addSubMenu(溢出项目);
subMenu2.add(本);
subMenu2.add(是);
subMenu2.add(样本);
subMenu2.add(项目);
菜单项subMenu2Item = subMenu2.getItem();
subMenu2Item.setIcon(R.drawable.ic_compose);
返回super.onCreateOptionsMenu(菜单);
}
@覆盖
保护无效的onCreate(包savedInstanceState){
setTheme(SampleList.THEME); //用于主题切换样品
super.onCreate(savedInstanceState);
的setContentView(R.layout.text);
((TextView中)findViewById(R.id.text))的setText(R.string.submenus_content)。
}
个性化这样的对象,最好的办法是设置在他们的自定义视图。也许你可以膨胀的自定义布局其中有1个的TextView和右侧的按钮,而不在左边的完成的标记。
这是code从这个
一个片段 LayoutInflater吹气= LayoutInflater.from(getSherlockActivity());
查看而ActionView = inflater.inflate(R.layout.actionmode,NULL);
ActionMode AM = getSherlockActivity()startActionMode(mActionModeCallback)。
am.setCustomView(而ActionView);
So what i want to do, is to have that menu button that we all know, to be displayed in the top right corner.
And as I've searched online, I found that actionbar Sherlock kind of suites my needs.
As you can see from he pic, the code that I use, adds that darker blue part in my design (the one that I ilustrated in a red rectangle using my awesome paint skills), and i want that button that is a green circle, to be placed in the area where the green arrow (nice movie :D) points.
The only code that i used to display this is below, and it is taken from the Sherlock demos:
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) {
}
}
I can't seem to figure out where that design comes from (probably the Sherlock framework), and how can i modify it like I want...
Any ideas guys ?
EDIT:
The answer that I found is to use a different Sherlock Sample for my goal :
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);
}
The best way to personalize such objects is to set a custom View on them. Perhaps you can inflate a custom layout which provides one TextView and a Button on the right, without the "Done" mark on the left.
This is a snippet of code from this
LayoutInflater inflater = LayoutInflater.from(getSherlockActivity());
View actionView = inflater.inflate(R.layout.actionmode, null);
ActionMode am = getSherlockActivity().startActionMode(mActionModeCallback);
am.setCustomView(actionView);
这篇关于如何设置我的菜单按钮的位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!