使用Java的方式模拟Flutter的Widget实现多层括号嵌套
我已经研究Flutter很长时间了。我就想既然Flutter用的Dart语言,而且括号又是嵌套多层,很多人都表示不是很理解,也不是很喜欢那么多层括号嵌套。其实完全不用担心,既然选择了它,就要接受它,当然是选择原谅它。废话少说,其实Java也是可以实现类似的语法的,下面带领大家作死的尝试一下使用Java模拟Flutter的Widget,欢迎各类开发人员前来观战。
Flutter最重要的是 Widget,首先我们来写一个类 Widget,然后有一个 build函数。如下所示:
Tips:(我是阿韦。我的公众号 Flutter那些事,干货多多,欢迎关注。惦记我的资料,可以与我取得联系。有任何疑问,欢迎在本文后面留言回复。)
publicclassWidget{
privateBuildContextmContext;
publicWidgetbuild(BuildContextcontext){
this.mContext=context;
returnthis;
}
}
接着我们写一个重要的类 BuildContext,如下所示:
我们直接跳过细节了,这里写的都是核心点。
publicclassBuildContext{
publicBuildContext(){
}
}
接下来就是一个关键的类 StatelessWidget,我们写一个 StatelessWidget类继承自 Widget,如下所示:
这里面我们不做任何的逻辑处理。只是先把这个类写出来。
publicclassStatelessWidgetextendsWidget{
@Override
publicWidgetbuild(BuildContextcontext){
returnsuper.build(context);
}
}
接下来,我们写写一个 Column类继承自 StatelessWidget,如下所示:
publicclassColumnextendsStatelessWidget{
Widget[]childrens;
intwidth;
intheight;
publicColumn(intwidth,intheight,Widget...children){
this.width=width;
this.height=height;
this.childrens=children;
}
@Override
publicWidgetbuild(BuildContextcontext){
returnsuper.build(context);
}
}
接下来,我们写写一个 Row类继承自 StatelessWidget,如下所示:
publicclassRowextendsStatelessWidget{
Widget[]childrens;
intwidth;
intheight;
publicRow(intwidth,intheight,Widget...children){
this.width=width;
this.height=height;
this.childrens=children;
}
@Override
publicWidgetbuild(BuildContextcontext){
returnsuper.build(context);
}
}
接下来,我们写写一个 Container类继承自 StatelessWidget,如下所示:
publicclassContainerextendsStatelessWidget{
Widget[]childrens;
intwidth;
intheight;
publicContainer(intwidth,intheight,Widget...children){
this.width=width;
this.height=height;
this.childrens=children;
}
@Override
publicWidgetbuild(BuildContextcontext){
returnsuper.build(context);
}
}
接下来,我们写写一个 Text类继承自 StatelessWidget,如下所示:
publicclassTextextendsStatelessWidget{
Stringtext;
floatsize;
publicText(Stringtext,floatsize){
this.text=text;
this.size=size;
}
@Override
publicWidgetbuild(BuildContextcontext){
returnsuper.build(context);
}
}
接下来就是我们的main函数的处理了,精彩不容错过:
首先我们写一个 runApp函数,参数为 Widget。具体逻辑我们暂时不做处理。如下所示:
publicclassMain{
publicstaticvoidmain(String[]args){
runApp(newHome());
}
publicstaticvoidrunApp(Widgetwidget){
}
}
接下来我们写一个类 Home继承自 StatelessWidget,如下所示:
publicclassHomeextendsStatelessWidget{
@Override
publicWidgetbuild(BuildContextcontext){
returnnewColumn(
50,
30,
newColumn(
100,
50,
newRow(
200,
100,
newText(
"contents",
20
)
)
),
newContainer(
100,
150,
newColumn(
200,
100,
newRow(
50,
50,
newText(
"contents2",
30
)
)
)
)
);
}
}
OK,到此为止,就用Java语言实现了Flutter里面的多个括号嵌套的类似场景,是不是很相似?其实还是那就话,语言都是想通的,Java也好,Dart也好,都是面向对象的语言,掌握面向对象编程思想很关键。哪怕以后换成了其它的面向对象的语言,只要掌握了面向对象编程思想,同样也可以快速上手开发。
总结
以上所述是小编给大家介绍的使用Java的方式模拟Flutter的Widget实现多层括号嵌套,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!