使用Java的方式模拟Flutter的Widget实现多层括号嵌套
- 更新时间:2022-06-11 13:24:56
- 编辑:隗姝丽
-
菜鸟成长之路:Java程序员职场全攻略
- 大小:51.4 MB
- 发布人:陆立夏
- 下载:Java职场
我已经研究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实现多层括号嵌套,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对java学习网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
相关下载
-
你必须知道的261个java语言问题
大小:72.60MB -
Effective Java
大小:56 MB -
Java项目开发案例精粹
大小:33.69MB -
Java高手真经系统架构卷:Java Web系统设计与架构
大小:252.34MB -
Java基础入门(课后答案)
大小:30.5 KB
相关教程
-
Java老矣,尚能饭否?
给大家整理了关于Java的教程,Java老矣,尚能饭否?各类编程语言横空出世,纷战不休,然而 TIOBE 的语言排行榜上,Java 却露出了明显的颓势。这个老牌的语言,未来会是怎样?
发布时间:2022-06-11主题:
查看详情 -
java 中@Deprecated 注解的实例详解
给大家整理一篇关于java的教程,这篇文章主要介绍了java 中@Deprecated 注解的实例详解的相关资料,这里对@Deprecated注解进行了详细介绍,希望能帮助到大家,需要的朋友可以参考下
发布时间:2022-06-11主题:
查看详情 -
一起来了解Java的策略模式
给大家整理了关于Java的教程,这篇文章主要为大家详细介绍了Java的策略模式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
发布时间:2022-06-10主题:Java策略模式
查看详情 -
Java Exception异常全方面分析
给网友们整理关于java的教程,异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等
发布时间:2022-06-11主题:Java 异常
查看详情 -
Java实战之超市收银管理系统的实现
给网友朋友们带来一篇关于java的教程,这篇文章主要介绍了如何利用Java实现超市收银管理系统,文中采用的技术有:Spring、SpringMVC、MyBatis、ThymeLeaf等,需要的可以参考一下
发布时间:2022-06-11主题:Java收银系统
查看详情 -
Java中方法名称和泛型相同的用法示例
为网友们分享了关于Java的教程,这篇文章主要介绍了Java中方法名称和泛型相同的用法,结合实例形式分析了泛型替代方法名称的相关使用技巧,需要的朋友可以参考下
发布时间:2022-06-11主题:
查看详情 -
Java在利用反射条件下替换英文字母中的值
给网友朋友们带来一篇关于java的教程,今天小编就为大家分享一篇关于Java在利用反射条件下替换英文字母中的值,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
发布时间:2022-06-11主题:
查看详情 -
java swagger ui 添加header请求头参数的方法
给网友们整理关于java的教程,今天小编就为大家分享一篇java swagger ui 添加header请求头参数的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2022-06-11主题:
查看详情