使用Java的方式模拟Flutter的Widget实现多层括号嵌套

网友投稿 297 2023-01-01


使用Java的方式模拟Flutter的Widget实现多层括号嵌套

我已经研究Flutter很长时间了。我就想既然Flutter用的Dart语言,而且括号又是嵌套多层,很多人都表示不是很理解,也不是很喜欢那么多层括号嵌套。其实完全不用担心,既然选择了它,就要接受它,当然是选择原谅它。废话少说,其实java也是可以实现类似的语法的,下面带领大家作死的尝试一下使用Java模拟Flutter的Widget,欢迎各类开发人员前来观战。

Flutter最重要的是 Widget ,首先我们来写一个类 Widget ,然后有一个 build 函数。如下所示:

public class Widget {

private BuildContext mContext;

public Widget build(BuildContext context){

thisJrqGgDPmz.mContext = context;

return this;

}

}

接着我们写一个重要的类 BuildContext ,如下所示:

我们直接跳过细节了,这里写的都是核心点。

public class BuildContext {

public BuildContext(){

}

}

接下来就是一个关键的类 StatelessWidget ,我们写一个 StatelessWidget 类继承自 Widget ,如下所示:

这里面我们不做任何的逻辑处理。只是先把这个类写出来。

public class StatelessWidget extends Widget{

@Override

public Widget build(BuildContext context) {

return super.build(context);

}

}

接下来,我们写写一个 Column 类继承自 StatelessWidget ,如下所示:

public class Column extends StatelessWidget {

Widget[] childrens;

int width;

int height;

public Column(int width, int height, Widget... children) {

this.width = width;

this.height = height;

this.childrens = children;

}

@Override

public Widget build(BuildContext context) {

return super.build(context);

}

}

接下来,我们写写一个 Row 类继承自 StatelessWidget ,如下所示:

public class Row extends StatelessWidget {

Widget[] childrens;

int width;

int height;

public Row(int width, int height, Widget... children) {

this.width = width;

this.height = height;

this.childrens = children;

}

@Override

public Widget build(BuildContext context) {

return super.build(context);

}

}

接下来,我们写写一个 Container 类继承自 StatelessWidget ,如下所示:

public class Container extends StatelessWidget {

Widget[] childrens;

int width;

int height;

public Container(int width, int height, Widget... children) {

this.width = width;

this.height = height;

this.childrens = children;

}

@Override

public Widget build(BuildContext context) {

return super.build(context);

}

}

接下来,我们写写一个 Text 类继承自 StatelessWidget ,如下所示:

public class Text extends StatelessWidget {

String text;

float size;

public Text(String text, float size) {

this.text = text;

this.size = size;

}

@Override

public Widget build(BuildContext context) {

return super.build(context);

}

}

接下来就是我们的main函数的处理了,精彩不容错过:

首先我们写一个 runApp 函数,参数为 Widget 。具体逻辑我们暂时不做处理。如下所示:

public class Main {

public static void main(String[] args) {

runApp(new Home());

}

public static void runApp(Widget widget) {

}

}

接下来我们写一个类 Home 继承自 StatelessWidget ,如下所示:

public class Home extends StatelessWidget {

@Override

public Widget build(BuildContext context) {

return new Column(

50,

30,

new Column(

100,

50,

new Row(

200,

100,

new Text(

"contents",

20

)

http:// )

),

new Container(

100,

150,

new Column(

JrqGgDPmz 200,

100,

new Row(

50,

50,

new Text(

"contents2",

30

)

)

)

)

);

}

}

OK,到此为止,就用Java语言实现了Flutter里面的多个括号嵌套的类似场景,是不是很相似?其实还是那就话,语言都是想通的,Java也好,Dart也好,都是面向对象的语言,掌握面向对象编程思想很关键。哪怕以后换成了其它的面向对象的语言,只要掌握了面向对象编程思想,同样也可以快速上手开发。

总结


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java OpenCV4.0.0实现实时人脸识别
下一篇:弱电系统接口设计(弱电系统接口设计规范)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~