如何创建ActionBar的Action Overflow部分?

时间:2012-07-23 04:28:40

标签: android android-actionbar

我一直在网上寻找一段时间,而且关于如何做到这一点的教程很少。甚至谷歌文档都有关于如何把这些东西放在那里的非常模糊的信息!我确信它很微妙,但我无法理解术语,因为我对Android仍然相当新。我希望能够将动作溢出图标放到ActionBar的右侧。在创建项目时使用文档和示例代码放置视图控件是非常容易理解的,但是没有一个用于Action Overflow。提前谢谢!

编辑:我应该详细说明。我希望菜单默认处于动作溢出之下。我找到了一个大开眼界的回答类似的问题,但它只告诉你如何将菜单放在顶部。我如何强迫他们进入名单?是否有可能强制这样做?谢谢!

1 个答案:

答案 0 :(得分:4)

如果你使用API​​-11,那就不是问题了。如果更低,我邀请您加入此主题: The best way to create drop down menu in android 2.x like in ICS

如果是API-11及更高版本,您必须:

  1. 像这样创建菜单xml:

         <?xml version="1.0" encoding="utf-8"?>
         <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    
            <item
                android:id="@+id/item_refresh"
                android:icon="@drawable/ic_menu_refresh"
                android:title="Refresh"
                android:showAsAction="ifRoom|withText" />
    
            <item
                android:id="@+id/item_save"
                android:icon="@drawable/ic_menu_save"
                android:title="Save"
                android:showAsAction="ifRoom|withText" />
        </menu>
    
  2. 并创建如下代码:

    public class MainActivity extends Activity {
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        // gets the activity's default ActionBar
        ActionBar actionBar = getActionBar();
        actionBar.show();
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu); //inflate our menu
        return true;
    }
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        switch(item.getItemId()) {
        case R.id.item_refresh:
            //click on refresh item
            break;
        case R.id.item_save:
            //click on save item
            break;
        }
        return true;
    }
    

    祝你好运!