java中的接口是类吗
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~