正如我的标题所说,当您单击Xamarin Forms中的选项卡时,是否可以使用模式页面?
当我单击5个选项卡之一时,我想执行的操作将打开“模态”页面。如果可以的话,请有人给我展示一些示例,或者指出正确的方法。
答案 0 :(得分:0)
当然可以,但是有点棘手。
TabbedPage.Children
OnCurrentPageChanged
后面的TabbedPage代码中,检查何时选择了伪造页面,然后打开一个模式。TabbedPage
返回上一个标签(因此,当用户关闭模态时,不会看到空白页)您的选项卡式页面儿童
<views:Page1 Title="First tab" />
<views:Page2 Title="Second Tab" />
<views:FakePage Title="Modal tab" />
在后面加上标签的页面代码
private Page _lastPage;
protected override async void OnCurrentPageChanged()
{
if (CurrentPage is FakePage)
{
await Navigation.PushModalAsync(new YourModalPage());
//Wait a bit for the modal to open, then reselect the last tab
//This is useful when a user close the modal: you dont want to show a blank page
await Task.Delay(150);
CurrentPage = _lastPage;
}
else
{
_lastPage = CurrentPage;
}
base.OnCurrentPageChanged();
}
答案 1 :(得分:0)
与Giampaolo所说的相反,以下方法可能会更平滑:
protected override async void OnCurrentPageChanged()
{
if (CurrentPage is FakePage)
{
CurrentPage = _lastPage;
await Navigation.PushModalAsync(new YourModalPage());
}
else
{
_lastPage = CurrentPage;
}
base.OnCurrentPageChanged();
}
那样,在过渡期间您将永远不会看到空白的伪造页面。