-1

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

我的溢出菜单:

<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;
    }
4

3 回答 3

1

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

在此处输入图像描述

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

在此处输入图像描述

或者

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

于 2015-01-13T10:26:56.000 回答
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);
于 2015-01-13T10:37:42.173 回答
0

使用由于其设计理念而内置的 Material Design

于 2015-01-13T10:26:29.413 回答