プッシュトランジションアニメーション

トランジションアニメーションは、コードを書き換えます:

インポート 'パッケージ:フラッター/ material.dart';

クラスCustomRouteはPageRouteBuilderを{延び
最後のウィジェットは、ウィジェット。
CustomRoute(this.widget)//このメソッドは直接----呼び出すコンストラクタ・メソッドの呼び出しをオーバーライドし、これはページクラスがオーバーライドされたメソッドYazhanであるため、この方法は、initがここに上を通過ウィジェット上書きに似ていますさ
:素晴らしい(
transitionDuration:持続時間(秒:1)、//遷移時間
pageBuilder:(//コンストラクタページ
BuildContextコンテキスト、//コンテキスト
アニメーション<ダブル> animation1、
アニメーション<ダブル> animation2、

){
ウィジェット返します。
}、
transitionsBuilder:(//コンストラクタ遷移、メイン実装
BuildContextコンテキスト、
アニメーション<ダブル> animation1、//アニメーションの推測では、親ページです
アニメーション<ダブル> animation2、//推測がアニメ化されるサブページ
ウィジェットの子//サブフォルダ
{
//アニメーション
リターンFadeTransition(
不透明度:Tween(登録開始:0.0、エンド:1.0)類似//アルファ透明効果
.animate(CurvedAnimation(
親://デフォルトはanimation1 animation1です
曲線:Curves.fastOutSlowIn //アニメーションカーブスローダウンした後、スロー早送り
))、
子供:子供、//入ってくるサブページ
); //フェードフェード
}
 
);
}
 
使用コード:
インポート 'パッケージ:フラッター/ material.dart';
インポート 'second_page.dart';
インポート 'custom_route.dart';
クラスFIRSTPAGEはStatelessWidgetを{延び
スーパー(キー:キー)FIRSTPAGE({キーキー})CONST。

@オーバーライド
ウィジェットビルド(BuildContextコンテキスト){
リターン足場(
backgroundColorの:Colors.orange、
アプリケーションバー:アプリケーションバー(
タイトル:テキスト( '最初のページ'、スタイル:TEXTSTYLE(のfontSize:36.0))、
標高:1.0、//デフォルトの浮動層の効果4.0ナビゲーションバー
)、
ボディ:センター(
子供:MaterialButton(
子供:アイコン(
Icons.navigate_next、
色:Colors.white、
サイズ:64.0
)、
onPressed:(){
Navigator.of(コンテキスト).push(CustomRoute(SecondPage()))。
}
)、
)、
);
}
}
要約:
 

 

//トランジションアニメーション

リライトPageRouteBuilder {

transitionsBuilder ()// 遷移コンストラクタ{

リターンFadeTransition {// 移行法

//アルファ変更

不透明度:トゥイーン(開始:XXを、エンド:XXX ).animate (CurvedAnimation

){

曲線:Curves.fastOutSlowIn // アニメーションカーブスローダウンした後、スロー早送り 

 

}

 

}

 

}

 

 

}

 

ナビゲーション

標高:xxxのナビゲーションバーの浮動層効果0はデフォルト4.0、ページに埋め込まれた全く影響はありません

アプリケーションバー

大手:コンテナ()、// フォントセンター 

おすすめ

転載: www.cnblogs.com/pp-pping/p/12180057.html