Size preferredSize { get ; }
}
public abstract class PreferredSizeWidget : StatefulWidget {
public abstract class PreferredSizeWidget : StatefulWidget , SizePreferred {
protected PreferredSizeWidget ( Key key = null ) : base ( key : key ) {
}
public class PreferredSize : StatelessWidget {
/ * *
* In flutter this class inherits StatelessWidget explicitly , in particular , the class inheritance diagram looks like follows :
* PreferredSizeWidget < - - Widget
* | |
* v v
* PreferredSize < - - StatelessWidget
*
* It is hard to implement such a complex inheritance diagram in C # . so we choose to create a slightly different diagram , which is more simple and making every C # code happy :
*
* PreferredSize < - - PreferredSizeWidget < - - StatefulWidget < - - Widget
*
* The bad side is that , we should make all classes that inherit PreferredSizeWidget to be statefulWidget now . Though it is not that bad since a statelessWidget can be made a statefulWidget easily
*
* /
public class PreferredSize : PreferredSizeWidget {
public PreferredSize (
Key key = null ,
Widget child = null ,
}
public readonly Widget child ;
//public override Size preferredSize { get; }
public Size preferredSize { get ; }
/ * public override State createState ( ) {
public override Size preferredSize { get ; }
public override State createState ( ) {
} * /
public override Widget build ( BuildContext context ) {
return child ;
//throw new System.NotImplementedException();
/ * class _PreferredSizeState : State < PreferredSize > {
public override Widget build ( BuildContext context ) {
class _PreferredSizeState : State < PreferredSize > {
public override Widget build ( BuildContext buildContext ) {
} * /
}
}