Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

Xamarin.Formsでタブページを使う

$
0
0

TabbedPageを使うといいということみたいです。

TabbedPage内にはタブとして表示したいページを置いて行って、タブのタイトルにはPageのTitleが表示されるという動きをしています。 意外と簡単だった。

Prismを使ってNavigationPage内にTabbedPageをネストして初期表示ページを指定して画面遷移するには以下のような感じのコードでOK.

using Prism.Unity;
using PrismUnityApp14.Views;
using Xamarin.Forms;

namespace PrismUnityApp14
{
    publicpartialclass App : PrismApplication
    {
        public App(IPlatformInitializer initializer = null) : base(initializer) { }

        protectedoverridevoid OnInitialized()
        {
            InitializeComponent();

            NavigationService.NavigateAsync("NavigationPage/MainPage/AboutPage");
        }

        protectedoverridevoid RegisterTypes()
        {
            this.Container.RegisterTypeForNavigation<NavigationPage>();
            this.Container.RegisterTypeForNavigation<MainPage>();
            this.Container.RegisterTypeForNavigation<HomePage>();
            this.Container.RegisterTypeForNavigation<AboutPage>();
        }
    }
}

MainPageがTabbedPageを拡張したページで以下のような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:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"xmlns:Views="clr-namespace:PrismUnityApp14.Views"prism:ViewModelLocator.AutowireViewModel="True"x:Class="PrismUnityApp14.Views.MainPage"Title="SampleApp"><Views:HomePage /><Views:AboutPage /></TabbedPage>

実行すると以下のような感じ。

f:id:okazuki:20161206123916p:plain

いい感じですね。

Prism.Formsで使うときの注意点

タブ切り替えではタブ内ページのViewModelで実装しているINavigationAwareのOnNavigatedFromとOnNavigatedToは動かないので、自分でどうにかしないといけない点が要注意です。

今後のバージョンで改善されるといいな(そんなIssueを見た気がする)


Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>