Flutter 仿縱橫中文網

代碼

GITHUB

介紹

仿縱橫中文網WAP頁面

主要工作

  • 路由
  • 界面佈局
  • 組件拆分

組件

  • Container:背景色,padding,margin 佈局,border,borderRadius
  • Row:子組件橫向佈局
  • Column:子組件縱向佈局
  • Text : 文字展示
  • Image: 圖片展示
  • SingleChildScrollView :超出滾動
  • flutter_swiper :輪播組件

採坑

  • 每個Scaffold組件的body屬性需要使用Scaffold包裹,否則超出警告
  • 每個activity界面,按照320pt 切分佈局
  • flutter_swiper,需要手動設置itemHeight屬性,itemCount 超過3,會報錯
  • 組件屬性傳遞,事件傳遞。(與React 非常相似,可以參考相關代碼)
  • 三方依賴注入:更改pubspec.yaml文件dependencies
  • Dart update 一直失敗。

代碼示例

代碼結構

代碼結構

  • main.dart:入口文件
  • MainScreen: 入口主頁
  • home/book 等:各個模塊組件
  • components: 全局模塊組件
  • utils: 公共方法

主頁

主頁
由各個自定義組件構成

組件詳情

class HomeCard extends StatefulWidget {
  static String pageName = '首頁卡片';
  final int k;
  final Map v;
  HomeCard({this.k, this.v}) : super();
  @override
  _HomeCard createState() => _HomeCard();
}

class _HomeCard extends State<HomeCard> {
  @override
  Widget build(BuildContext context) {
    return Container(
      width: 75,
      margin: EdgeInsets.only(
        bottom: 18,
        left: widget.k % 3 == 0 ? 0 : 22,
        right: widget.k % 3 == 2 ? 0 : 22,
      ),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Image.network(
            widget.v['image'],
            width: 75,
            height: 100,
          ),
          Container(
            margin: EdgeInsets.only(top: 9),
            child: Text(
              widget.v['title'],
              style: TextStyle(
                color: Color(0xff555555),
                fontSize: 12,
              ),
              maxLines: 2,
              overflow: TextOverflow.ellipsis,
            ),
          ),
        ],
      ),
    );
  }
}

組件調用

組件調用

添加三方依賴

添加三方依賴

修改pubspec.yaml文件,vscode 自動下載依賴

接口

接口代碼

界面展示

book-detail.jpeg

category.jpeg

free.jpeg

home-2.jpeg

home-3.jpeg

home.jpeg

rank.jpeg

shelf.jpeg

相關

dart 爬蟲實踐

仿窮遊APP

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章