标签: android-optionsmenu

Android:更改溢出菜单的宽度

目前我有一个溢出菜单,其默认宽度为:

在此输入图像描述

我想要的是:

在此输入图像描述

我试过这样改变主题:

<style name="MyWorkspaceDetailTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">

        <item name="android:popupMenuStyle">@style/MyPopupMenu</item>

</style>

<style name="MyPopupMenu" parent="@android:style/Widget.Holo.ListPopupWindow">
    <item name="android:dropDownWidth">30dp</item>


</style>
Run Code Online (Sandbox Code Playgroud)

但没有取得任何成功.请任何人都可以帮忙.

android android-theme android-optionsmenu android-actionbar android-styles

5
推荐指数
1
解决办法
1594
查看次数

如何使用硬件菜单按钮在设备上设置Action Bar Overflow的样式?

这就是我在动态栏上设置Action Bar Overflow样式的方式:

<style name="DropDownNav.MyTheme" parent="@android:style/Widget.Holo.Light.Spinner">
    <item name="android:popupBackground">@drawable/menu_dropdown_panel</item>
    <item name="android:dropDownSelector">@drawable/selectable_background</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但是指定的自定义选择器不会应用于具有硬件按钮的Samsung设备上的弹出选项菜单,而是默认为蓝色.

我已经看到了这个答案,并尝试申请

<style name="ListPopupWindow.IvuTheme" parent="android:Widget.ListPopupWindow">
    <item name="android:dropDownSelector">@drawable/list_selector_holo_light</item>
    <item name="android:listSelector">@drawable/list_selector_holo_light</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但没有效果.

我需要继承哪种样式(以及我的主题中的相应属性)才能更改后一个硬件按钮选项菜单中的选择器?

谢谢你的建议

android android-theme android-optionsmenu android-actionbar android-styles

5
推荐指数
1
解决办法
1033
查看次数

如果从内部调用API,onPrepareOptionsMenu会很奇怪

我需要根据API调用响应启用和禁用菜单项,并且每次菜单出现时都必须调用它.

我需要asynctask因为我必须显示进度条

    @Override
    public boolean onPrepareOptionsMenu (Menu menu) {
       handleMenuItems(menu)

     }

    private void handleMenuItems(menu)
    {


        new AsyncTask<Void, Void, Void>(){

            @Override
            protected Void doInBackground(Void... params) {
                //API call                  
                return null;
            }

            @Override
            protected void onPostExecute(Void result) {
                super.onPostExecute(result);
                if (progressDialog != null)
                    progressDialog.hide();

                               //necessary menu items are enabled and disabled
                                super.onPrepareOptionsMenu(menu);
            }

            @Override
            protected void onPreExecute() {
                if (progressDialog != null){
                    progressDialog.setMessage("Checking");
                    progressDialog.show();
                }
                super.onPreExecute();
            }

        }.execute();

    }
Run Code Online (Sandbox Code Playgroud)

每当我触摸选项菜单时,都会调用onPrepareOptionsMenu并且不显示选项菜单,然后当我再次按下它时,不会调用onPrepareOptionsMenu并显示选项菜单.

每当我触摸选项菜单时,我希望每次都调用api并显示菜单.

android-asynctask android-optionsmenu android-fragmentactivity

5
推荐指数
1
解决办法
249
查看次数

在上下文操作栏中创建弹出选项菜单

我有一个带有NoActionBar主题的应用程序.在我的主要活动中,我有一个选项菜单,我在屏幕顶部手动创建(或使用内置设备的选项按钮).

在这个主要活动中,我有一个带有listView片段,我在其中应用了动作模式长按功能,以显示上下文操作栏(CAB)以获取更多用户选项.

现在,我尝试向我的CAB添加一个选项,因此它将包含一些选项,例如选择listView中的所有项目,但由于它是CAB的一个项目,我无法像常规活动那样真正显示弹出菜单.此外,我希望所有选项菜单回调(例如onOptionsItemSelected)保留在CAB的上下文中,以便能够继续在CAB上执行操作.

这是我的CAB的代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/action_delete"
        android:orderInCategory="100"
        app:showAsAction="always"
        android:icon="@drawable/ic_action_delete"
        android:title="Delete"/>

    <item
        android:id="@+id/action_overflow"
        app:showAsAction="always"
        android:orderInCategory="200"
        android:icon="@drawable/ic_action_overflow"
        android:title="Options"
        android:visible="false"/>

</menu>
Run Code Online (Sandbox Code Playgroud)

android popupmenu android-optionsmenu contextual-action-bar

5
推荐指数
1
解决办法
513
查看次数

如何在Android应用程序的选项菜单中对菜单项进行排序?

我创建了一个选项菜单,并填充了几个菜单项.由于某种原因,添加菜单项时的顺序并不理想.

为了保证菜单项按照我们希望的顺序显示,创建后需要一个排序步骤.但是我搜索了android开发文档并发现无法做到这一点(或者我没有找到它).

有没有解决方法来实现这一目标?请指教.

谢谢!

一些示例代码:

public boolean onCreateOptionsMenu(Menu menu) {

    menu.add("menuItem1");

    menu.add("menuItem2");

    // after this I want to sort the items

    ArrayList<MenuItem> list = new ArrayList<MenuItem>();

    for(int i = 0; i < menu.size(); i ++) {
        list.add(menu.getItem(i));
    }

    Collections.sort(list, new SampleComparator());

    // But then I don't know how to add the sorted list of menu items back
}                
Run Code Online (Sandbox Code Playgroud)

android menuitem android-optionsmenu

4
推荐指数
1
解决办法
9461
查看次数

Android Activity和Fragment Options菜单排序

我最多有两个由我的活动创建的选项菜单项.根据显示的当前片段(使用选项卡控件进行更改),我显示另外一个或两个项目.

创建的所有项目应始终显示(在任何给定时间最多3个).

我的问题是关于物品的订购.我找不到任何标准.我的活动项目应该是否正确,然后将项目左侧的项目分段?或相反亦然?

谢谢

android android-optionsmenu android-actionbar

4
推荐指数
1
解决办法
1320
查看次数

使用自定义工具栏未调用 onCreateOptionsMenu

我在我的 AndroidApplication 中使用我自己的风格,但它没有让我看到菜单(3 个点)和活动标题。有什么建议吗?

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但是在我的 MainActivity 菜单没有膨胀,活动标题没有出现。

你可以在这里看到我的清单

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

<uses-permission android:name="android.permission.INTERNET" />

<application
    android:name=".App"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme.NoActionBar">
    <activity android:name=".LoginActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


    <activity android:name=".main.ui.MainActivity"
        android:theme="@style/AppTheme.NoActionBar"/>
</application>
Run Code Online (Sandbox Code Playgroud)

和我的MainActivity.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    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"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".main.ui.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/appbar_padding_top"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/AppTheme.PopupOverlay">

        </android.support.v7.widget.Toolbar>

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </android.support.design.widget.AppBarLayout> …
Run Code Online (Sandbox Code Playgroud)

android android-optionsmenu android-toolbar

4
推荐指数
1
解决办法
2528
查看次数

选项菜单未显示在某些设备的操作栏中

我在操作栏中有一个选项菜单,它没有出现在具有硬件菜单按钮的某些设备上.尽管有硬件按钮,我必须让它出现在操作栏中......我怎么能这样做?

android android-optionsmenu

3
推荐指数
1
解决办法
673
查看次数

如何在菜单上保存所选单选按钮的实例状态

我的工具栏中有radibutton项目的选项菜单:

 <item
    android:id="@+id/map_menu"
    android:icon="@drawable/ic_layer"
    android:orderInCategory="102"
    app:showAsAction="always"
    android:title="@string/action_settings">
    <menu>
        <group
            android:id="@+id/map_types_group"
            android:checkableBehavior="single" >
            <item
                android:id="@+id/map_terrain"
                android:orderInCategory="1"
                app:showAsAction="ifRoom"
                android:title="@string/map_terrain"/>
            <item
                android:id="@+id/map_normal"
                android:orderInCategory="2"
                android:checked="true"
                app:showAsAction="ifRoom"
                android:title="@string/map_normal"/>
            <item
                android:id="@+id/map_hybrid"
                android:orderInCategory="3"
                app:showAsAction="ifRoom"
                android:title="@string/map_hybrid"/>
        </group>
    </menu>
</item>
Run Code Online (Sandbox Code Playgroud)

我希望在onSaveInstanceState,onRestoreInstanceState中发生方向更改时恢复选定的radiobutton但我无法理解如何从选项菜单中的radiogroup中获取所选按钮.

android savestate android-optionsmenu

3
推荐指数
1
解决办法
3871
查看次数

Android选项菜单是透明的

我一直在努力解决这个问题.我没有动作栏,但我有一个选项菜单.选项菜单是透明的我不能让它不透明.出现这个问题是因为主题:Theme.AppCompat.Light.DarkActionBar或者Theme.AppCompact.Light.我喜欢尝试很多东西,比如设置android:panelFullBackground或者类似,但它们不能正常工作,或者当选项菜单出来时,它们会让我的所有屏幕都显示为黑夜.

我找到了一个有用的解决方案,我扩展ActionBarActivity并设置主题,Theme.AppCompat.Light.NoActionBar但当你按选项菜单按钮时,你听到按钮按两次声音.

请帮我.我想要一个xml修复或一个不同的(类似于我正在使用的)主题(也适用于标签).

android android-optionsmenu

3
推荐指数
1
解决办法
1949
查看次数