亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

public class Widget {

  private BuildContext mContext;

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

接著我們寫一個重要的類 BuildContext ,如下所示:

我們直接跳過細節(jié)了,這里寫的都是核心點。

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函數(shù)的處理了,精彩不容錯過:

首先我們寫一個 runApp 函數(shù),參數(shù)為 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語言實現(xiàn)了Flutter里面的多個括號嵌套的類似場景,是不是很相似?其實還是那就話,語言都是想通的,Java也好,Dart也好,都是面向對象的語言,掌握面向對象編程思想很關鍵。哪怕以后換成了其它的面向對象的語言,只要掌握了面向對象編程思想,同樣也可以快速上手開發(fā)。

總結

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

相關文章

  • 基于RocketMQ實現(xiàn)分布式事務的方法

    基于RocketMQ實現(xiàn)分布式事務的方法

    了保證系統(tǒng)數(shù)據(jù)的一致性,我們需要確保這些服務中的操作要么全部成功,要么全部失敗,通過使用RocketMQ實現(xiàn)分布式事務,我們可以協(xié)調(diào)這些服務的操作,保證數(shù)據(jù)的一致性,這篇文章主要介紹了基于RocketMQ實現(xiàn)分布式事務,需要的朋友可以參考下
    2024-03-03
  • Java基礎教程之繼承詳解

    Java基礎教程之繼承詳解

    這篇文章主要介紹了Java基礎教程之繼承詳解,繼承是除組合(composition)之外,提高代碼重復可用性(reusibility)的另一種重要方式,本文對繼承做了詳細講解,需要的朋友可以參考下
    2014-08-08
  • 詳解Java中信號量Semaphore的使用

    詳解Java中信號量Semaphore的使用

    在Java中,正確地管理并發(fā)是一件既挑戰(zhàn)又有趣的事情,當談到并發(fā)控制,就不得不說Java中的一個非常強大的工具,就是Semaphore,下面我們就來看看Java中信號量Semaphore的具體使用吧
    2024-01-01
  • java 中HashMap、HashSet、TreeMap、TreeSet判斷元素相同的幾種方法比較

    java 中HashMap、HashSet、TreeMap、TreeSet判斷元素相同的幾種方法比較

    這篇文章主要介紹了從源碼的角度淺析HashMap、TreeMap元素的存儲和獲取元素的邏輯;從Map與Set之間的關系淺析常用的Set中元素的存儲和判斷是否重復的邏輯,需要的朋友可以參考下
    2017-01-01
  • Idea2020 無法share項目到svn的解決方法

    Idea2020 無法share項目到svn的解決方法

    這篇文章主要介紹了Idea2020 無法share項目到svn的解決方法,需要的朋友可以參考下
    2020-09-09
  • Spring MVC攔截器_動力節(jié)點Java學院整理

    Spring MVC攔截器_動力節(jié)點Java學院整理

    Spring MVC的攔截器,是屬于HandlerMapping級別的,可以有多個HandlerMapping ,每個HandlerMapping可以有自己的攔截器,具體內(nèi)容詳情大家通過本文學習吧
    2017-08-08
  • Java多線程 生產(chǎn)者消費者模型實例詳解

    Java多線程 生產(chǎn)者消費者模型實例詳解

    這篇文章主要介紹了Java多線程 生產(chǎn)者消費者模型實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Mybatis查詢方法如何實現(xiàn)沒有返回值

    Mybatis查詢方法如何實現(xiàn)沒有返回值

    這篇文章主要介紹了Mybatis查詢方法如何實現(xiàn)沒有返回值,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • Java中MyBatis的結果映射詳解

    Java中MyBatis的結果映射詳解

    這篇文章主要介紹了Java中MyBatis的結果映射詳解,MyBatis 支持對各種單表查詢、關聯(lián)查詢等各種復雜查詢的結果進行映射,MyBatis 是一款優(yōu)秀的持久層框架,它的強大之處正是 SQL 語句映射,這一章介紹常用的結果映射,需要的朋友可以參考下
    2023-08-08
  • Java使用Tinify實現(xiàn)圖片無損壓縮(4M無損壓縮到1M)的方法

    Java使用Tinify實現(xiàn)圖片無損壓縮(4M無損壓縮到1M)的方法

    在當今的數(shù)字化時代,圖片已成為網(wǎng)站、應用和社交媒體中不可或缺的元素,然而,大尺寸的圖片不僅會增加頁面或者客戶端加載時間,還會占用大量的存儲空間,本文將詳細介紹如何利用Tinify壓縮圖片,并將其上傳至OSS,重點介紹圖片壓縮實現(xiàn)方式,需要的朋友可以參考下
    2024-08-08

最新評論