首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >xamarin表单:如何禁用选项卡按钮

xamarin表单:如何禁用选项卡按钮
EN

Stack Overflow用户
提问于 2018-11-05 09:32:17
回答 1查看 1.9K关注 0票数 0

我有标签页,在其中我有3个标签,我需要enabled=false第二和第三个标签。当我完成第一页时,我需要像表单向导一样工作,然后第二个选项卡应该是enabled=true,我已经尝试过像下面这样的代码,但它不起作用。

代码语言:javascript
运行
复制
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            x:Name="maintab"
            x:Class="OnlineKIHStore.Views.CheckOuts" 
            BarBackgroundColor="#2F3C51" 
            Title="Checkout"
            BarTextColor="White">

        <ContentPage x:Name="first" Title="Login/Register" Icon="user"  IsEnabled="True">
            <StackLayout>
        </ContentPage>
        <ContentPage x:Name="second" Title="SHIPPING" Icon="shipping" IsEnabled="False">

        </ContentPage>
        <ContentPage x:Name="third" Title="Payment" Icon="payment" IsEnabled="False">

        </ContentPage>
</TabbedPage>
EN

回答 1

Stack Overflow用户

发布于 2018-11-05 21:57:32

  • 如果您提到"enabled=false“,-You可以单击该选项卡。它将加载页面,但不允许在该特定页面中执行任何操作。
  • 如果您提到“IsVisible=”“False”--仍然可以单击选项卡。你可以看到一个空屏幕。

一种方法--一开始不要加载您想要的选项卡。完成第1页后,插入所需的选项卡。

这是我的示例,根据您的代码

代码语言:javascript
运行
复制
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
        x:Name="maintab"
        x:Class="OnlineKIHStore.Views.CheckOuts" 
        BarBackgroundColor="#2F3C51" 
        Title="Checkout"
        BarTextColor="White">
<TabbedPage.Children>
    <firstPage Title="Login/Register" Icon="user"/>
    <thirdPage Title="Payment" Icon="payment"/>
</TabbedPage.Children>

在.CS文件中

代码语言:javascript
运行
复制
public CheckOuts 
{ 
  InitializeComponent();
if(check_finished_pageone)
 {
    Children.Insert(2, new SecondPage { Title = "SHIPPING", Icon = "shipping" });
}}

完成page1后,重新加载该表页。因此,现在您的第二个页面将添加新的选项卡栏。

还有一个方法是,一旦单击了第2页,就可以导航到第1页,提示用户完成第1页。

代码语言:javascript
运行
复制
e<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
        x:Name="maintab"
        x:Class="OnlineKIHStore.Views.CheckOuts" 
        BarBackgroundColor="#2F3C51" 
        Title="Checkout"
        CurrentPageChanged="TabbedPage_CurrentPageChanged"
        BarTextColor="White">

.CS文件

代码语言:javascript
运行
复制
private async void TabbedPage_CurrentPageChanged(object sender, EventArgs e){
 var i = this.Children.IndexOf(this.CurrentPage);
 if (i == 2)
{
     await App.Current.MainPage.DisplayAlert("Error", "You have to finish the page one before navigating this page", "Ok"))
     this.CurrentPage = this.Children[0];
 }}

此方法允许您单击第二个选项卡,但它将再次直接到第1页。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53151636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档