公共のインスタンスメソッドanimate()
を提供するMySlideWidget
という名前のStatefulWidgetを構築したいとします。私はMySlideWidget
の親のボタンを押すとStatefulWidgetのメソッドを公開するにはどうすればよいですか?
することは、私はMySlideWidget
の内部SlideTransition
をトリガするためにMySlideWidget
のanimate()
メソッドを呼び出すことができます。
使い方は次のようになります。
class MySlideWidgetDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
MySlideWidget mySlideWidget = new MySlideWidget();
return new Scaffold(
body: mySlideWidget,
floatingActionButton: new FloatingActionButton(
onPressed:() {
mySlideWidget.animate();
},
tooltip: 'Start',
child: new Icon(Icons.add),
));
}
}
私は思って何がMySlideWidget
内AnimationController
と_controller.forward()
の実装をカプセル化する方法であるので、MySlideWidget
のユーザは、単にanimate()
を呼び出すことができます。
これは可能ですか?または、Flutterでカプセル化を行う方法は何ですか?
おかげで例を見つけることができ、私はより正確に記述するために私の質問を更新しました。簡単に言えば、私はStatefulWidgetの内部にアニメーションの実装をカプセル化する方法を知りたいと思います。 –
私はそれを手に入れました。この場合、 'Form'と' FormState'のリファレンス実装として使うことができます。[src](https://github.com/flutter/flutter/blob/c7469e005d2def9bc1759cfbb39b75f293eac561/packages/flutter/lib/src/widgets/form .dart#L20)。これはStatefulWidgetとメソッド 'save'を公開するStateです。したがって、正しい状態のインスタンスを取得し、アニメーションをトリガする必要があります。 – Mogol
これは本当に参考になるソースです、ありがとう! –