gpt4 book ai didi

c# - 寻找一种 Android 解决方案来阻止单击选项卡更改为新页面

转载 作者:行者123 更新时间:2023-11-30 17:28:20 25 4
gpt4 key购买 nike

我的应用程序中有五个页面,如果 App.quizRunning == true 并且当前页面是 Japanese.PhrasesFrame 我需要能够停止点击任何选项卡以执行任何操作:

namespace Japanese {
public partial class MainPage : TabbedPage {
public MainPage() {
InitializeComponent();
App.cardsPage = new Cards();
App.homePage = new HomePage();
App.helpPage = new HelpPage();
App.settingsPage = new SettingsPage();
App.phrasesPage = new PhrasesFrame(this);
Children.Add(App.navHomePage);
Children.Add(App.navHelpPage);
Children.Add(App.navSettingsPage);
Children.Add(App.navCardsPage);
Children.Add(App.navPhrasesFrame);
}
}
}

到目前为止,我已经有了一个 iOS 解决方案。如果有人发现这有什么问题,我将不胜感激:

using System;
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
using System.Diagnostics;
using Japanese.Enums;

[assembly: ExportRenderer(typeof(TabbedPage), typeof(Japanese.iOS.TabbedPageRenderer))]
namespace Japanese.iOS {
public class TabbedPageRenderer : TabbedRenderer {

private MainPage _page;
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);

if (e.NewElement != null) { _page = (MainPage)e.NewElement; }
else { _page = (MainPage)e.OldElement; }

try {
var tabbarController = (UITabBarController)this.ViewController;

if (null != tabbarController)
tabbarController.ViewControllerSelected += OnTabbarControllerItemSelected;

}
catch (Exception exception) { Console.WriteLine(exception); }
}

private void OnTabbarControllerItemSelected(object sender, UITabBarSelectionEventArgs eventArgs)
{
if (!(_page.CurrentPage is Japanese.PhrasesFrame) && App.quizRunning == true) {
_page.CurrentPage = App.navPhrasesFrame;
}
}
}
}

现在我正在寻找 Android 解决方案,但一直找不到任何东西。

有谁知道我如何使用 Android 渲染器做到这一点?

最佳答案

不确定您为什么不尝试 CurrentPage = App.phrasesPage;

override protected void OnCurrentPageChanged() {
var a = this.CurrentPage;
if (Settings.mode == MO.Quiz && CurrentPage != App.phrasesPage) {
// give the user a confirmation/alert box and
// depending on the outcome set the variable
// App.continueQuiz to be true or false and then
// go back to Japanese.PhrasesFrame page
CurrentPage = App.phrasesPage;
}
}

关于c# - 寻找一种 Android 解决方案来阻止单击选项卡更改为新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53018775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com