如何将xamarin中的选项卡2设置为选项卡页面作为启动时的默认选项卡

时间:2017-03-17 17:35:35

标签: xaml xamarin xamarin.forms

嘿伙计我有一个应用程序,我正在使用xamarin表单,它看起来像这样: enter image description here

当应用程序加载好友标签时,第一个标签是加载如何将其设置为应用程序启动时加载标签是第一个标签的位置?

继承我的xaml代码:

<?xml version="1.0" encoding="UTF-8"?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
            xmlns:local="clr-namespace:AppName;assembly=AppName"
            x:Class="AppName.HomePage">
    <TabbedPage.Children>
        <NavigationPage x:Name="Friends" Title="Friends" Icon="firendstab.png">
            <x:Arguments>
                <local:FriendPage />
            </x:Arguments>
        </NavigationPage >
        <NavigationPage  x:Name="Snap" Title="Snap" Icon="snaptab.png">>
            <x:Arguments>
                <local:CameraPage />
            </x:Arguments>
        </NavigationPage>
        <NavigationPage x:Name="Notes" Title="Notes" Icon="notetab.png">
            <x:Arguments>
                <local:NotePage />
            </x:Arguments>
        </NavigationPage>
    </TabbedPage.Children>
</TabbedPage>

我的代码背后是:

using System;
using System.Collections.Generic;

using Xamarin.Forms;

namespace AppName
{
    public partial class HomePage : TabbedPage
    {
        public HomePage()
        {
            InitializeComponent();






        }
    }
}

过去2天我搜索过谷歌,所以我觉得是时候问了!

提前致谢:)

4 个答案:

答案 0 :(得分:9)

您可以访问TabbedPage个孩子的枚举器并提前两次获得“第二个标签”。将该页面指定为CurrentPage

public HomePage()
{
    InitializeComponent();
    var pages = Children.GetEnumerator();
    pages.MoveNext(); // First page
    pages.MoveNext(); // Second page
    CurrentPage = pages.Current;
}

答案 1 :(得分:5)

我认为你必须设置“CurrentPage”属性。

在代码中就像是

            TabbedPage tp = new TabbedPage();
            tp.Children.Add(new PageFriends());
            tp.Children.Add(new PageSnap());
            tp.Children.Add(new PageNotes());
            tp.CurrentPage = tp.Children[1];

答案 2 :(得分:5)

public HomePage()
{
    InitializeComponent();
    CurrentPage = Children[2];
}

答案 3 :(得分:1)

对我来说,我所做的是这样:

  (this.Parent as TabbedPage).CurrentPage = (this.Parent as TabbedPage).Children[2];

因为在我的标签页中,我添加了这样的页面

this.Children.Add(new Landing());
this.Children.Add(new Categories());
this.Children.Add(new Collections());
this.Children.Add(new Options());

以上代码段将带我进入“收藏集”页面。