Android:如何在上方操作栏上显示溢出菜单

时间:2015-01-13 10:22:43

标签: android android-actionbar overflow-menu

我的操作栏中有一个溢出菜单,它显示在上方操作栏上的某些设备中以及下面操作栏中显示的其他设备中,我想在所有设备的上方操作栏上显示我的溢出菜单。请帮帮我。

我的溢出菜单:

<item
android:id="@+id/menu_overflow"
android:icon="@drawable/color"
android:orderInCategory="11111"
android:showAsAction="always">
<menu>
    <item
        android:id="@+id/whitecolor"
        android:showAsAction="never"
        android:icon="@drawable/colorwhite"
        android:title="white"/>


    <item
        android:id="@+id/yellowcolor"
        android:showAsAction="never"
        android:icon="@drawable/coloryellow"
        android:title="yellow"/>


    <item
        android:id="@+id/redcolor"
        android:showAsAction="never"
        android:icon="@drawable/colorred"
        android:title="red"/>


    <item
        android:id="@+id/bluecolor"
        android:showAsAction="never"
        android:icon="@drawable/colorblue"
        android:title="blue"/>
</menu>
</item>

和我的代码:

public boolean onOptionsItemSelected(MenuItem menuItem)
    {       
        switch (menuItem.getItemId()) {         
            case R.id.whitecolor:           

                finish();
                break;
            case R.id.yellowcolor:

                finish();
                break;
            case R.id.redcolor:

                finish();
                break;
            case R.id.bluecolor:

                finish();
                break;
        }
        return true;
    }

3 个答案:

答案 0 :(得分:1)

如果您已为 Android 2.3.x(API级别10)或更低版本开发了应用程序,则当用户按下时,选项菜单的内容会显示在屏幕底部菜单按钮,如下图所示。

enter image description here

如果您已为 Android 3.0(API级别11)更高级别开发了应用程序,则操作栏中会显示选项菜单中的项目。默认情况下,系统将所有项目置于操作溢出中,用户可以使用操作栏右侧的操作溢出图标(或按设备菜单按钮,如果可用)显示该项目。要启用对重要操作的快速访问,您可以通过将android:showAsAction="ifRoom"添加到相应的<item>元素来推广一些项目以显示在操作栏中

enter image description here

OR

尝试使用Toolbar,您可以在所有版本和所有设备上显示溢出。

答案 1 :(得分:0)

使用Material Design,因其设计理念而内置支持

答案 2 :(得分:0)

试试这个。例如。如果您想要更多,请创建布局并将其设置为操作栏。

      ActionBar actionBar = getActivity().getActionBar();
        actionBar.setDisplayOptions(actionBar.getDisplayOptions()
                | ActionBar.DISPLAY_SHOW_CUSTOM);
        ImageView imageView_done = new ImageView(actionBar.getThemedContext());
        imageView_done.setScaleType(ImageView.ScaleType.CENTER);
        imageView_done.setImageResource(R.drawable.ic_action_done);
        ActionBar.LayoutParams layoutParams = new ActionBar.LayoutParams(
                ActionBar.LayoutParams.WRAP_CONTENT,
                ActionBar.LayoutParams.WRAP_CONTENT, Gravity.RIGHT
                | Gravity.CENTER_VERTICAL
        );
        layoutParams.rightMargin = 40;
        imageView_done.setLayoutParams(layoutParams);
        actionBar.setCustomView(imageView_done);