Flutter頁面佈局之GridView

簡介:GridView是Flutter中用於展示網格佈局的widget,我們通常使用GridView.count構造函數來創建一個GridView

demo:

import 'package:flutter/material.dart';


void main() => runApp(MyApp());

const CITY_NAMES = {
  '北京':['東城區','西城區','海淀區','朝陽區','石景山區','順義區'],
  '上海':['黃浦區','徐彙區','長寧區','靜安區','普陀區','閘北區'],
  '廣州':['越秀','海珠','荔灣','天河','白雲','黃埔','南沙'],
  '深圳':['南山','福田','羅湖','鹽田','龍崗','寶安','龍華'],
  '杭州':['上城區','下城區','江乾區','拱墅區','西湖區','濱江區'],
  '蘇州':['姑蘇區','吳中區','相城區','高新區','虎丘區','工業園區','吳江區'],
};

class MyApp extends StatelessWidget {



  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text("網格佈局"),
        ),
        //crossAxisCount 每行顯示的個數
        body: GridView.count(crossAxisCount: 2,children: _buildList(),)
      ),

    );
  }
  List<Widget> _buildList(){
   return CITY_NAMES.keys.map((city)=>_item(city)).toList();
  }
  Widget _item(String city){
    return Container(
      height: 80,
      margin: EdgeInsets.only(bottom: 5),
      alignment: Alignment.center,
      decoration: BoxDecoration(color: Colors.blue),
      child: Text(
        city,
        style: TextStyle(color: Colors.white,fontSize: 20),
      ),
    );
  }
}

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