在Android操作栏中创建右侧菜单

时间:2015-10-23 19:12:02

标签: android android-actionbar

我有一个左侧带抽屉的操作栏。我想在操作栏的右侧添加另一个菜单。它可以是三个点或一个按钮或其他任何东西。有没有办法做到这一点?
谢谢:))

2 个答案:

答案 0 :(得分:2)

要在actionBar中实现3点菜单,在您的活动(扩展AppCompatActivity或ActionBarActivity)中,您将覆盖选项菜单的创建,如下所示

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.your_menu, menu);
    return true;
}

R.menu.your_menures/menu文件夹中存在的资源项。一个示例菜单资源文件内容

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      tools:context="your_package.your_activity">

    <item
        android:id="@+id/action_edit"
        android:orderInCategory="100"
        android:title="@string/action_edit"
        app:showAsAction="collapseActionView"/>

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="101"
        android:title="@string/action_settings"
        app:showAsAction="collapseActionView"/>

</menu>

这将显示一个菜单,默认情况下折叠了两个选项。要收听这些菜单项的点击,您可以覆盖onOptionsItemSelected并执行必要的操作

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_settings:
            //Do something
            ...
            return true;
        case R.id.action_edit:
            //Do something else
            ...
            return true;
    }

    return super.onOptionsItemSelected(item);
}

答案 1 :(得分:0)

您可以为ActionBar创建布局,然后在您的活动中使用以下内容:

   getSupportActionBar().setDisplayShowCustomEnabled(true);
   getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
   getSupportActionBar().setCustomView(R.layout.custom_action_bar);

在你的R.layout.custom_action_bar中创建你需要的按钮。