2017-06-29 17 views
0

私は、この質問が以前に尋ねられていることを知っていますが、そのほとんどは1年以上経過しているので、まだ問題が解決しないかどうか疑問です。Xamarin Formsカスタムナビゲーショントランジション

Xamarinフォームは、カスタムナビゲーションページの遷移をまだサポートしていませんか?

あなたはネイティブアプリケーションでアニメーションをうまく作成できますが、Xamarin Formsにはカスタムレンダラーまたは単純なカスタムページ遷移を行うパッケージが必要であると私の研究では思われます。これはまったく変わったのですか?これらのスレッドが尋ねられたので、彼らは何らかの形のサポートを追加しました。

おかげ

+0

AFAIK最近まで、これはxamarin形式ではサポートされていませんでした。 Alexandr Nikulinはこれを行うことができるコンポーネントを書いています。 https://github.com/AlexandrNikulin/AnimationNavigationPage –

答えて

0

Xamarin.Formsはそれを行うための機能を持っていませんが、回避策があります。

ページのプッシュまたはポップ時にアニメーションの切り替えを無効にすると、トランジションの前後にカスタムアニメーションを実行できます。

ので、同じように:

// First animate the opacity of the current page 
new Animation(opacity => page.Opacity = opacity/100, 100, 0) 
    .Commit(this, "PageExitAnimation", 1, 350, Easing.CubicInOut, (d, b) => 
    { 
     var otherPage = new OtherPage() { Opacity = 0 }; // Create the page with 0 opacity to animate later 
     NavigationPage.Navigation.PushAsync(otherPage, false); // Push the new page, as the current page is already with 0 opacity, without animation 
     otherPage.FadeTo(1, 350, Easing.CubicInOut); // Animate the fade of the next page 
    } 

あなたは、だけではなく、不透明度を変更することで、アニメーションのいずれかの種類を行うには、この概念を適用するなどTranslationY、TranslationXを、変更することができますが、複雑なアニメーションをしたい場合、あなたXamarin.Formsアニメーションを学ぶためにあなたの時間を取るだけでなく、同時に複数のものを変更することができます:)

希望に役立ちます! :D