java container嵌套_使用Java的方式模拟Flutter的Widget实现多层括号嵌套|chu

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

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

Tips: (我是阿韦。我的公众号 Flutter 那些事 ,干货多多,欢迎关注。惦记我的资料,可以与我取得联系。有任何疑问,欢迎在本文后面留言回复。)

public class Widget { private BuildContext mContext; public Widget build(BuildContext context){ this.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 ) ) ), new Container( 100, 150, new Column( 200, 100, new Row( 50, 50, new Text( "contents2", 30 ) ) ) ) ); } }

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

总结

以上所述是小编给大家介绍的使用Java的方式模拟Flutter的Widget实现多层括号嵌套,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对华域联盟网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值