最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Java的方式模擬Flutter的Widget實(shí)現(xiàn)多層括號(hào)嵌套

 更新時(shí)間:2019年07月24日 10:19:16   作者:AWeiLoveAndroid  
這篇文章主要介紹了使用Java的方式模擬Flutter的Widget的實(shí)現(xiàn)多層括號(hào)嵌套問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

我已經(jīng)研究Flutter很長(zhǎng)時(shí)間了。我就想既然Flutter用的Dart語(yǔ)言,而且括號(hào)又是嵌套多層,很多人都表示不是很理解,也不是很喜歡那么多層括號(hào)嵌套。其實(shí)完全不用擔(dān)心,既然選擇了它,就要接受它,當(dāng)然是選擇原諒它。廢話少說(shuō),其實(shí)Java也是可以實(shí)現(xiàn)類似的語(yǔ)法的,下面帶領(lǐng)大家作死的嘗試一下使用Java模擬Flutter的Widget,歡迎各類開(kāi)發(fā)人員前來(lái)觀戰(zhàn)。

Flutter最重要的是 Widget ,首先我們來(lái)寫(xiě)一個(gè)類 Widget ,然后有一個(gè) build 函數(shù)。如下所示:

Tips: (我是阿韋。我的公眾號(hào) Flutter 那些事 ,干貨多多,歡迎關(guān)注。惦記我的資料,可以與我取得聯(lián)系。有任何疑問(wèn),歡迎在本文后面留言回復(fù)。)

public class Widget {

  private BuildContext mContext;

  public Widget build(BuildContext context){
    this.mContext = context;
    return this;
  }
}

接著我們寫(xiě)一個(gè)重要的類 BuildContext ,如下所示:

我們直接跳過(guò)細(xì)節(jié)了,這里寫(xiě)的都是核心點(diǎn)。

public class BuildContext {
  public BuildContext(){
  }
}

接下來(lái)就是一個(gè)關(guān)鍵的類 StatelessWidget ,我們寫(xiě)一個(gè) StatelessWidget 類繼承自 Widget ,如下所示:

這里面我們不做任何的邏輯處理。只是先把這個(gè)類寫(xiě)出來(lái)。

public class StatelessWidget extends Widget{
  @Override
  public Widget build(BuildContext context) {
    return super.build(context);
  }
}

接下來(lái),我們寫(xiě)寫(xiě)一個(gè) 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);
    }
  }

接下來(lái),我們寫(xiě)寫(xiě)一個(gè) 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);
    }
  }

接下來(lái),我們寫(xiě)寫(xiě)一個(gè) 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);
    }
  }

接下來(lái),我們寫(xiě)寫(xiě)一個(gè) 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);
    }
  }

接下來(lái)就是我們的main函數(shù)的處理了,精彩不容錯(cuò)過(guò):

首先我們寫(xiě)一個(gè) runApp 函數(shù),參數(shù)為 Widget 。具體邏輯我們暫時(shí)不做處理。如下所示:

public class Main {
  public static void main(String[] args) {
    runApp(new Home());
  }
  public static void runApp(Widget widget) {
  }
}

接下來(lái)我們寫(xiě)一個(gè)類 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語(yǔ)言實(shí)現(xiàn)了Flutter里面的多個(gè)括號(hào)嵌套的類似場(chǎng)景,是不是很相似?其實(shí)還是那就話,語(yǔ)言都是想通的,Java也好,Dart也好,都是面向?qū)ο蟮恼Z(yǔ)言,掌握面向?qū)ο缶幊趟枷牒荜P(guān)鍵。哪怕以后換成了其它的面向?qū)ο蟮恼Z(yǔ)言,只要掌握了面向?qū)ο缶幊趟枷?,同樣也可以快速上手開(kāi)發(fā)。

總結(jié)

以上所述是小編給大家介紹的使用Java的方式模擬Flutter的Widget實(shí)現(xiàn)多層括號(hào)嵌套,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • java實(shí)現(xiàn)秒表功能

    java實(shí)現(xiàn)秒表功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)秒表功能,利用javax.swing.Timer類設(shè)計(jì)實(shí)現(xiàn)秒表應(yīng)用程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • 淺談Java中的atomic包實(shí)現(xiàn)原理及應(yīng)用

    淺談Java中的atomic包實(shí)現(xiàn)原理及應(yīng)用

    這篇文章主要介紹了淺談Java中的atomic包實(shí)現(xiàn)原理及應(yīng)用,涉及Atomic在硬件上的支持,Atomic包簡(jiǎn)介及源碼分析等相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • HelloSpringMVC注解版實(shí)現(xiàn)步驟解析

    HelloSpringMVC注解版實(shí)現(xiàn)步驟解析

    這篇文章主要介紹了HelloSpringMVC注解版實(shí)現(xiàn)步驟解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • JavaWeb實(shí)戰(zhàn)之用Servlet+JDBC實(shí)現(xiàn)用戶登錄與注冊(cè)

    JavaWeb實(shí)戰(zhàn)之用Servlet+JDBC實(shí)現(xiàn)用戶登錄與注冊(cè)

    這篇文章主要介紹了JavaWeb實(shí)戰(zhàn)之用Servlet+JDBC實(shí)現(xiàn)用戶登錄與注冊(cè),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很大的幫助,需要的朋友可以參考下
    2021-04-04
  • 重新啟動(dòng)IDEA時(shí)maven項(xiàng)目SSM框架文件變色所有@注解失效

    重新啟動(dòng)IDEA時(shí)maven項(xiàng)目SSM框架文件變色所有@注解失效

    這篇文章主要介紹了重新啟動(dòng)IDEA時(shí)maven項(xiàng)目SSM框架文件變色所有@注解失效,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • SpringBoot如何監(jiān)控Redis中某個(gè)Key的變化(自定義監(jiān)聽(tīng)器)

    SpringBoot如何監(jiān)控Redis中某個(gè)Key的變化(自定義監(jiān)聽(tīng)器)

    這篇文章主要介紹了SpringBoot如何監(jiān)控Redis中某個(gè)Key的變化(自定義監(jiān)聽(tīng)器),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 關(guān)于Spring項(xiàng)目對(duì)JDBC的支持與基本使用詳解

    關(guān)于Spring項(xiàng)目對(duì)JDBC的支持與基本使用詳解

    這段時(shí)間一直在觀看Spring框架,所以下面這篇文章主要給大家介紹了關(guān)于Spring項(xiàng)目對(duì)JDBC的支持與基本使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • java?http請(qǐng)求設(shè)置代理Proxy的兩種常見(jiàn)方法

    java?http請(qǐng)求設(shè)置代理Proxy的兩種常見(jiàn)方法

    代理是一種常見(jiàn)的設(shè)計(jì)模式,其目的就是為其他對(duì)象提供一個(gè)代理以控制對(duì)某個(gè)對(duì)象的訪問(wèn),這篇文章主要給大家介紹了關(guān)于java?http請(qǐng)求設(shè)置代理Proxy的兩種常見(jiàn)方法,需要的朋友可以參考下
    2023-11-11
  • 設(shè)計(jì)模式之原型模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    設(shè)計(jì)模式之原型模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了設(shè)計(jì)模式之原型模式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Java實(shí)現(xiàn)合并多個(gè)升序鏈表

    Java實(shí)現(xiàn)合并多個(gè)升序鏈表

    本文主要介紹了Java實(shí)現(xiàn)合并多個(gè)升序鏈表,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04

最新評(píng)論

灵山县| 青州市| 盐边县| 漳浦县| 澎湖县| 莱阳市| 西宁市| 满洲里市| 天全县| 青龙| 宜君县| 图木舒克市| 神农架林区| 兴文县| 景泰县| 靖远县| 广安市| 新干县| 佳木斯市| 买车| 普兰县| 临沧市| 尼木县| 固始县| 石台县| 遂平县| 上虞市| 台湾省| 蚌埠市| 长治县| 古浪县| 芜湖市| 贵港市| 灵台县| 乌兰浩特市| 沾化县| 东台市| 沂南县| 英吉沙县| 曲阳县| 云梦县|