Xamarin Android与iOS的等价物是什么;什么是阿巴斯控制器?

Xamarin Android与iOS的等价物是什么;什么是阿巴斯控制器?,xamarin,xamarin.forms,xamarin.android,Xamarin,Xamarin.forms,Xamarin.android,我在iOS渲染器中有以下代码: public class TabbedPageRenderer : TabbedRenderer { protected override void OnElementChanged(VisualElementChangedEventArgs e) { base.OnElementChanged(e); try { var tabbarController = (UITabBarController

我在iOS渲染器中有以下代码:

public class TabbedPageRenderer : TabbedRenderer
{
   protected override void OnElementChanged(VisualElementChangedEventArgs e)
   {
      base.OnElementChanged(e);
      try
      {
         var tabbarController = (UITabBarController)this.ViewController;

         if (null != tabbarController)
         {
            tabbarController.ViewControllerSelected += OnTabBarReselected;
         }
       }
       catch (Exception exception)
       {
          Console.WriteLine(exception);
       }
    }

    void OnTabBarReselected(object sender, UITabBarSelectionEventArgs e)
    {
        var tabs = Element as TabbedPage;
        var playTab = tabs.Children[4];

        if (TabBar.SelectedItem.Title == "Play")
        {
            if (tabs != null)
            {
                playTab.Title = "Pause";
                playTab.Icon = "ionicons_2_0_1_pause_outline_22.png";
            }
            App.pauseCard = false;
        }
        else 
        {
            if (tabs != null)
            {
               playTab.Title = "Play";
               playTab.Icon = "ionicons_2_0_1_play_outline_25.png";
            }
               App.pauseCard = true;
        }
    }
}
这样做的目的是让用户暂停/播放页面中运行的计时器。打开应用程序时,
Home
选项卡将打开,因此将显示
Play
图标。但是当切换到
播放
选项卡时,默认情况下计时器正在运行,因此显示
暂停
标题和图标

上面的代码非常适合iOS。但我仍然迷上了Android。我已经为Android尝试了以下代码:

public class MyTabbedPageRenderer: TabbedPageRenderer, TabLayout.IOnTabSelectedListener
{
   void TabLayout.IOnTabSelectedListener.OnTabReselected(TabLayout.Tab tab)
   {
      var tabs = Element as TabbedPage;
      var playTab = tabs.Children[4];
      var selectedPosition = tab.Position;

      if(selectedPosition == 4) 
      {
         if (playTab.Title == "Play")
         {
            if (tabs != null)
            {
               playTab.Title = "Pause";
               playTab.Icon = "ionicons_2_0_1_pause_outline_22.png";
            }
            App.pauseCard = false;
          }
          else
          {
             if (tabs != null)
             {
                playTab.Title = "Play";
                playTab.Icon = "ionicons_2_0_1_play_outline_25.png";
             }
             App.pauseCard = true;
           }
         }
    }
}

显然,这只在重新选择选项卡时起作用。如果有人能给我指出正确的方向,我将不胜感激。

像@G.hakim一样,您还需要添加
TabLayout.IOnTabSelectedListener.OnTabSelected
方法,它将与
OnTabReselected
相同:

   void TabLayout.IOnTabSelectedListener.OnTabSelected(TabLayout.Tab tab)
   {
      var tabs = Element as TabbedPage;
      var playTab = tabs.Children[4];
      var selectedPosition = tab.Position;

      if(selectedPosition == 4) 
      {
         if (playTab.Title == "Play")
         {
            if (tabs != null)
            {
               playTab.Title = "Pause";
               playTab.Icon = "ionicons_2_0_1_pause_outline_22.png";
            }
            App.pauseCard = false;
          }
          else
          {
             if (tabs != null)
             {
                playTab.Title = "Play";
                playTab.Icon = "ionicons_2_0_1_play_outline_25.png";
             }
             App.pauseCard = true;
           }
         }
    }

将有一个页面选择和未选择的事件,以及检查它