带有ActionBarSherlock的底部菜单

时间:2013-04-11 01:29:47

标签: android actionbarsherlock menuitem submenu

我尝试使用ActionBarSherlock实现底部菜单。在Android 2.1中,显示菜单,但在Android 4中,不显示菜单。怎么了?

enter image description here

下面是代码:

public class Atividade extends Activity implements OnCreateOptionsMenuListener {

     ActionBarSherlock mSherlock = ActionBarSherlock.wrap(this);

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

        if (android.os.Build.VERSION.SDK_INT < 11)
            // Remove title bar
            this.requestWindowFeature(Window.FEATURE_NO_TITLE);

        setTheme(R.style.Theme_Sherlock_Light_DarkActionBar);

        mSherlock.setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW);        
        mSherlock.setContentView(R.layout.atividade);
        .
        .
        .               
    }

下面是菜单选项:

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        menu.add("Agenda")
            .setIcon(R.drawable.ic_compose)
            // .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

        menu.add("Favoritos")
        .setIcon(R.drawable.favoritos)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

        menu.add("Mapa")
            .setIcon(R.drawable.maps)
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

        com.actionbarsherlock.view.SubMenu subMenu1 = menu.addSubMenu("Compartilhar");              
        subMenu1.add("Facebook");
        subMenu1.add("Twitter");
        subMenu1.add("E-Mail");
        subMenu1.add("SMS");

        MenuItem subMenu1Item = (MenuItem) subMenu1.getItem();
        subMenu1Item.setIcon(R.drawable.compartilhar);
        subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

        return true;
    }

}

2 个答案:

答案 0 :(得分:1)

您可以考虑使用内部使用ActionBarSherlock的HoloEverywhere(也有演示源代码)。 对于初学者,您可以翻译(右键单击 - &gt;翻译Chrome)并使用this教程。 可以找到单个样本here

答案 1 :(得分:0)

让您的活动延长SherlockActivity。正如Jake Wharton建议的那样,使用清单为您的活动设置themeuiOptions属性。