标签: android-menu

如何从新的棒棒糖工具栏中删除夸大的菜单/项目?

我在我的布局中包含了一个v7工具栏.

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white"
    />
Run Code Online (Sandbox Code Playgroud)

我正在使用以下内容向其中填充菜单:

mToolbar.inflateMenu(R.menu.options_add_contact);
Run Code Online (Sandbox Code Playgroud)

现在我怎么知道删除/重置它?我在黑暗中试了几次:

  • 膨胀空菜单
  • mToolbar.inflateMenu(0)
  • moolbar.setMenu(null, null)
  • toolbar.setMenu(null, null)

android android-menu android-toolbar

40
推荐指数
1
解决办法
2万
查看次数

如何在没有标题的NavigationView菜单中获取分隔符?

我正在使用new NavigationView从XML创建我的导航抽屉菜单.我需要在部分菜单项之间放置一个分隔符,它在我的应用程序各部分之间切换,以及底部的设置和帮助和支持链接.

在我看过的所有例子中,我看到如何通过将另一个放入<menu>一个<item>,但<item>需要具有android:title属性来完成,所以我能做的最好就是将标题留空,这在设置之前留下一个空的空格并提供帮助和反馈.

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_section_1"
            android:icon="@drawable/ic_dashboard"
            android:title="@string/section_1"
            android:checked="true" /> <!-- default selection -->
        <item
            android:id="@+id/nav_section_2"
            android:icon="@drawable/ic_dashboard"
            android:title="@string/section_2" />
        <item
            android:id="@+id/nav_section_3"
            android:icon="@drawable/ic_dashboard"
            android:title="@string/section_3" />
    </group>

    <item android:title="@null"> <!-- I don't want a title or space here! -->
        <menu>
            <item
                android:id="@+id/nav_settings"
                android:icon="@drawable/ic_settings"
                android:title="@string/settings" />
            <item
                android:id="@+id/nav_help_feedback"
                android:icon="@drawable/ic_help"
                android:title="@string/help_feedback" />
        </menu>
    </item>
</menu>
Run Code Online (Sandbox Code Playgroud)

我已经试过的各种组合<menu>,<item>以及<group>标签,但没有发现任何东西,将工作.例如,这具有使用上一组中​​的最后一项作为组标题的问题:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_section_1"
            android:icon="@drawable/ic_dashboard"
            android:title="@string/section_1"
            android:checked="true" /> …
Run Code Online (Sandbox Code Playgroud)

android divider android-menu navigationview

38
推荐指数
2
解决办法
2万
查看次数

如何在NavigationView中获取菜单项?

<android.support.design.widget.NavigationView
    android:id="@+id/drawer_nav"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar"
    app:headerLayout="@layout/drawer_header"
    app:menu="@menu/menu_drawer"
    />
Run Code Online (Sandbox Code Playgroud)

android.support.design.library用于材料设计.

我想要的是在用户未登录时隐藏一些菜单项.

现在我无法获取菜单项NavigationView.

我试过了:

MenuItem logoutItem = (MenuItem) mNavigationView.findViewById(R.id.menu_logout);
logoutItem.setVisible(false);
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

我怎样才能做到这一点?

谢谢.

android android-menu android-support-library android-design-library android-navigationview

37
推荐指数
3
解决办法
2万
查看次数

35
推荐指数
5
解决办法
6万
查看次数

Android - 正确使用invalidateOptionsMenu()

我一直在搜索invalidateOptionsMenu(),我知道它的作用.但我想不出这个方法可能有用的任何现实生活中的例子.

我的意思是,例如,假设我们想要为我们添加一个新MenuItemActionBar,我们可以简单地从菜单中获取onCreateOptionsMenu(Menu menu)并在任何按钮的操作中使用它.

现在我真正的问题是,遵循唯一的使用方式invalidateOptionsMenu()

bool _OtherMenu;
protected override void OnCreate (Bundle bundle)
{
    _OtherMenu = false;
    base.OnCreate (bundle);
    SetContentView (Resource.Layout.Main);
    Button button = FindViewById<Button> (Resource.Id.myButton);
    button.Click += delegate
    {
        if(_OtherMenu)
            _OtherMenu = false;
        else
            _OtherMenu = true;

        InvalidateOptionsMenu ();
    };
}

public override bool OnCreateOptionsMenu (IMenu menu)
{
    var inflater = this.SupportMenuInflater;
    if(_OtherMenu)
        inflater.Inflate (Resource.Menu.another_menu, menu);
    else
        inflater.Inflate (Resource.Menu.main_activity_menu, menu);

    return base.OnCreateOptionsMenu (menu);
}
Run Code Online (Sandbox Code Playgroud)

单击按钮,将出现另一个菜单.再次单击该按钮,将出现上一个菜单.

PS对不起C#语法.

android android-menu android-optionsmenu android-actionbar xamarin

34
推荐指数
3
解决办法
4万
查看次数

如何添加没有操作栏的菜单按钮?

我想在我的应用的右上角添加一个菜单按钮,而不使用操作栏,就像在下面的屏幕截图中的Google Fit应用中一样.谁能帮我?

没有操作栏的菜单按钮

android android-menu

33
推荐指数
3
解决办法
2万
查看次数

带app的项目:showAsAction未显示

我无法理解为什么错误和不兼容(AndroidStudio告诉我"应该使用app:showAsAction与appcompat库)代码

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/action_search"
      android:title="@string/action_search"
      android:icon="@drawable/search"
      android:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)

工作完美,但适当和兼容的版本

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto" >
    <item android:id="@+id/action_search"
          android:title="@string/action_search"
          android:icon="@drawable/search"
          app:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)

根本没有显示我的图标.

我正在测试Samsung GT P5210(android v.4.4.2)和Nexus 7(4.4.4)

android android-menu

30
推荐指数
3
解决办法
5万
查看次数

如何制作whatsapp类型的动画以从工具栏打开菜单(动作栏)

描述:

  1. 我最近更新了whatsapp并注意到工具栏上单击了菜单项的动画.如何实现这种效果?
  2. 是否有任何开源项目来实现这一目标?
  3. 我没有发布任何代码,因为.我不知道他们是怎么做的.

快照-1:单击菜单中的附件按钮之前 IMG


快照-2:单击菜单中的附件按钮

IMG2


如何实现这一目标?

android android-menu whatsapp

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

Android Studio 3.1在"工具"菜单下未显示"android"选项

我正在使用android studio 3.1进行一些开发.但它没有androidTools菜单下显示选项.而Android studio 3.0没有这个问题.

这是android studio 3.1工具菜单的截图:

在此输入图像描述

看到缺少android选项.我认为这是一些配置相关的问题,因为它在android studio 3.0中不存在.基本上我需要Enable ADB Integration选择.有没有办法在工具菜单中显示该选项?

android android-menu android-studio-3.1

30
推荐指数
3
解决办法
3万
查看次数

Android:java.lang.IllegalArgumentException:无效的有效内容项类型

有些用户告诉我有关的异常:

java.lang.IllegalArgumentException: Invalid payload item type
at android.util.EventLog.writeEvent(Native Method)
at android.app.Activity.onMenuItemSelected(Activity.java:2452)
at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:846)
at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:153)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:956)
at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:534)
at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
at android.view.View$PerformClick.run(View.java:11934)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4123)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

但我无法理解什么是错的.有没有人对这个问题有一些想法?我试图重复那个例外,但我没有做到这一点.这是代码

@Override
public boolean onCreateOptionsMenu(Menu menu) {  
   MenuInflater inflater = getMenuInflater();
   inflater.inflate(R.menu.app_menu, menu);
   return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {  
   switch (item.getItemId()) {
   case R.id.about:
      startActivity(new Intent(this, AboutActivity.class));
      return true;
   case R.id.settings:
      startActivity(new Intent(this, SettingsActivity.class)); …
Run Code Online (Sandbox Code Playgroud)

android illegalargumentexception android-menu android-optionsmenu

29
推荐指数
4
解决办法
8158
查看次数