如何设置我的菜单按钮的位置 [英] How do i set my menu buttons location

查看:374
本文介绍了如何设置我的菜单按钮的位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我想做的事情,就是有一个菜单按钮,我们都知道,要显示在右上角。

正如我在网上搜索,我发现,动作条福尔摩斯那种套房我的需求。

正如你可以看到他事先知情同意,我用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆