gpt4 book ai didi

c# - 如何检测 Xamarin Forms 选项卡式页面点击 - iOS?

转载 作者:太空宇宙 更新时间:2023-11-03 12:26:12 25 4
gpt4 key购买 nike

我的情况是,我有一个 Tabbed页面在 Xamarin Forms :

public partial class MainPage : TabbedPage
{
public MainPage()
{
InitializeComponent();

var playPage = new NavigationPage(new PlayPage())
{
Title = "Play",
Icon = "play.png"
};
var settingsPage = new NavigationPage(new SettingsPage())
{
Title = "Settings",
Icon = "settings.png"
};
var favoritesPage = new NavigationPage(new FavoritesPage())
{
Title = "Favorites",
Icon = "fave.png"
};
var aboutPage = new NavigationPage(new AboutPage())
{
Title = "About",
Icon = "info.png"
};

Children.Add(playPage);
Children.Add(favoritesPage);
Children.Add(settingsPage);
Children.Add(aboutPage);
}
}

我想在我的应用程序中添加暂停和播放功能。启动时,PlayPage最初会有 play.png图标,当我点击 PlayPage再次将图标更改为 pause.png .页面不只是更改页面图标。任何人都知道如何做到这一点?

编辑:

所以我在 OnElementChanged 中创建了一个自定义渲染器我使用 ViewControllerSelected :

var tabbarController = (UITabBarController)this.ViewController;
if (null != tabbarController)
{
tabbarController.ViewControllerSelected += OnTabBarReselected;
}

还有我的OnTabBarReselected我有:

private void OnTabBarReselected(object sender, UITabBarSelectionEventArgs e)
{
switch (TabBar.SelectedItem.Title)
{
case "Play":
TabBar.SelectedItem.Title = "Pause";
TabBar.SelectedItem.Image = UIImage.FromFile("pause.png");
break;
}
}

这只完成了一半的工作。它改变了 TitlePlay 中选择的标签栏至 Pause在我点击同一个选项卡但没有点击 Icon 之后.在我离开该标签页(选择另一个标签)之前,该图标将保持“play.png”。任何人都知道为什么?

最佳答案

您将需要实现自定义渲染器才能完成此操作。 James Montemagno 的博客上有一些实现,他在其中谈到了更改图标。

然而,这不一定与您点击图标并更改该特定图标的要求相关,因为所有这些代码仅在页面最初加载时运行。不过,这可能是一个不错的起点。检查那里是否有 TabbedPage 上的属性,当您点击当前选项卡并更改该点的图标时,该属性会发生变化。

您还有一个可以在 TabbedPage 中覆盖的 OnCurrentPageChanged 事件,但是当页面已经处于事件状态时不会调用该事件。

关于c# - 如何检测 Xamarin Forms 选项卡式页面点击 - iOS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44847298/

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