猿问

检测选项卡更改事件

我正在研究 xamarin.forms。我需要通过左右交换或单击而不使用自定义渲染器来检测选项卡被更改的事件


我尝试了以下事件,但是在推送子页面或更改选项卡时,它在两种情况下都会触发。我怎样才能得到选项卡被更改的孤立事件


public class MyTabbedPage : TabbedPage

{

   public MyTabbedPage()

   {

      this.CurrentPageChanged += CurrentPageHasChanged;

   }

   protected void CurrentPageHasChanged(object sender,EventArgs e)

   {

       var pages= Navigation.NavigationStack;

       if (pages.Count > 0)

       {

           this.Title = pages[pages.Count - 1].Title;

       }

       else

       this.Title = this.CurrentPage.Title;

   }

}

我面临的这个问题是:在下面的截图中,第 1 部分是 Homepage(title="Diary") & part2 是 Childpage(title="Homework") 当我更改选项卡并再次来到第一个选项卡时,导航栏标题将“作业”更改为《日记》(Screeshot2)

http://img4.mukewang.com/610e4840000197bf02670242.jpg

回首忆惘然
浏览 140回答 2
2回答

红颜莎娜

我不认为你可以实现你想做的事情,至少不是这样。该事件的行为方式与所描述的一样:每当当前页面发生变化时都会触发它,也适用于儿童。话虽如此,我认为您应该专注于使用我们拥有的工具实现您想要的功能。我真的无法从你的代码中推断出你想要做什么,但看起来你想改变标题?更改选项卡时?为什么不设置某种条件只对某些页面执行此操作?例如,页面何时包含在Children集合中?
随时随地看视频慕课网APP
我要回答