【问题标题】:Hide options menu in xamarin android在xamarin android中隐藏选项菜单
【发布时间】:2014-07-16 05:22:39
【问题描述】:

我正在使用 Xamarin 开发的 Android 应用程序中有一个活动。 我的应用程序中有一个选项菜单出现在所有页面中。我希望选项菜单隐藏在我的第一页中,然后在其余页面中可见。

我的代码是这样的:

protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);

        if (!UserPrefExist()) {

            SetContentView (Resource.Layout.FirstPage);

            HandleSpinnerMethods ();
        } else {
            isFirstPage = false;
            DisplayMainPage ();
        }

    }

然后我有这个方法:

public override bool OnPrepareOptionsMenu(IMenu menu)
    {
        IMenuItem menitm = menu.FindItem (Resource.Id.MyOption);
        if (isFirstPage) {
            menitm.SetEnabled (false);
            return false;
        } else {
            menitm.SetEnabled (true);
            return true;
        }
    }

选项菜单隐藏得很好,但是所有页面都隐藏了,这是不可取的,因为我只想在第一页隐藏选项菜单。

需要你们的帮助。

感谢和问候,
阿尼尔班

【问题讨论】:

    标签: android menu hide option


    【解决方案1】:

    您不应该直接在主页上启用/禁用它。因为它是在本地访问显然不会影响其他页面。您必须在 if (isFirstPage) { 代码中设置一个 flag 而不是启用/禁用并在其余部分访问该标志显示或不显示菜单的页面。这里您需要在其余页面中显式隐藏菜单。

    【讨论】:

    • 好的。发生的事情是,在第一次运行中,选项菜单对所有页面都变得不可见,但在第二次运行时,所有页面都可以看到它,因为根据我的应用程序逻辑,它正在跳过第一页。现在,这也是不可取的。我喜欢让我的选项菜单对除第一页以外的所有页面都可用,即使在第一次运行时也是如此。
    • 那么在这种情况下不需要维护First Run的标志,因为每次运行的情况都是一样的。只需在第一个屏幕上禁用它并在每次休息时启用它。
    • 如果对你有用,别忘了采纳答案。
    • 嗨@Vits,实际上,场景是:我的应用程序将检查是否已提供用户首选项:如果已提供,应用程序将跳过第一个屏幕。因此,在随后的运行中,第一页不会加载。但是,在第一次运行时,会加载第一个页面,当用户提供首选项时,应用程序会加载第二个页面,依此类推。
    • 但是,在第一次运行时,由于用户尚未提供首选项,应用程序将加载第一个屏幕,我已经能够禁用选项菜单,但是当第二个屏幕加载时,在第一次运行时,选项菜单仍然是不可见的。
    猜你喜欢
    • 2022-08-19
    • 2019-05-16
    • 2015-09-19
    • 2015-11-17
    • 2016-08-12
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    相关资源
    最近更新 更多