如何在 Xamarin.Forms 中的选项卡式页面内检测对子视图的关注?
How can I detect focus on child view inside a Tabbed Page in Xamarin.Forms?
我有一个 TabbedPage,它包括 3 个页面(A、B、C)。我需要检测(使用某种覆盖方法)页面何时来自选项卡式控件 active/selected。我尝试了一些覆盖方法,例如我们的 OnAppearing 但没有结果,因为在调试过程中我注意到 OnAppearing 在 TabbedPage 首次初始化时被触发,所以当我选择例如第二页(页面 B)时,这个方法没有被触发。是否有任何最佳方法来检测子视图内选项卡之间的切换?
就像
ToolmakerSteve说,tabbedpage有CurrentPageChanged事件,所以可以覆盖TabbedPage的OnCurrentPageChanged()
方法。如:
public partial class TabbedPage1 : TabbedPage
{
public TabbedPage1()
{
InitializeComponent();
}
protected override void OnCurrentPageChanged()
{
if(CurrentPage == Children[0])//Children[0] is the page A
{
....
}else if(CurrentPage == Children[1])//Children[1] is the page B
{
.....
}
else
{
......
}
base.OnCurrentPageChanged();
}
}
我有一个 TabbedPage,它包括 3 个页面(A、B、C)。我需要检测(使用某种覆盖方法)页面何时来自选项卡式控件 active/selected。我尝试了一些覆盖方法,例如我们的 OnAppearing 但没有结果,因为在调试过程中我注意到 OnAppearing 在 TabbedPage 首次初始化时被触发,所以当我选择例如第二页(页面 B)时,这个方法没有被触发。是否有任何最佳方法来检测子视图内选项卡之间的切换?
就像
ToolmakerSteve说,tabbedpage有CurrentPageChanged事件,所以可以覆盖TabbedPage的OnCurrentPageChanged()
方法。如:
public partial class TabbedPage1 : TabbedPage
{
public TabbedPage1()
{
InitializeComponent();
}
protected override void OnCurrentPageChanged()
{
if(CurrentPage == Children[0])//Children[0] is the page A
{
....
}else if(CurrentPage == Children[1])//Children[1] is the page B
{
.....
}
else
{
......
}
base.OnCurrentPageChanged();
}
}