欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:Flutter框架詳解

柚子快報(bào)邀請(qǐng)碼778899分享:Flutter框架詳解

http://yzkb.51969.com/

文章目錄

前言1.Flutter來(lái)源2.Flutter優(yōu)勢(shì)3.跨平臺(tái)設(shè)計(jì)理念4.初學(xué)者的必看

flutter基礎(chǔ)2.1 Dart語(yǔ)言2.2 初識(shí)Flutter2.3 GridView網(wǎng)格布局組件介紹2.4 彈性布局(Flex Expanded)2.5 Stack層疊組件2.6 Wrap組件

持續(xù)更新中結(jié)尾

前言

當(dāng)你刷到這篇文章,就說(shuō)明我們有緣。

1.Flutter來(lái)源

Flutter是谷歌公司開發(fā)的一款開源、免費(fèi)的UI框架,可以讓我們快速的在Android和iOS上構(gòu)建高質(zhì)量App. 它最大的特點(diǎn)就是跨平臺(tái)、以及高性能. 目前 Flutter 已經(jīng)支持 iOS、Android、Web、Windows、macOS、Linux 的跨平臺(tái)開發(fā).

2.Flutter優(yōu)勢(shì)

Flutter是谷歌基于Dart語(yǔ)言開發(fā)的一款跨平臺(tái)的App開發(fā)框架。它針對(duì)的開發(fā)者是全部開發(fā)者。它的性 能相比RN、Ionic這樣的框架要更好一些。

3.跨平臺(tái)設(shè)計(jì)理念

端上的開發(fā)無(wú)外乎三件事,“數(shù)據(jù)獲取”,“狀態(tài)管理”,“頁(yè)面渲染”。 而在跨端領(lǐng)域的竟?fàn)?,?“虛擬機(jī)”,“渲染引擎”,“原生交互”,“開發(fā)環(huán)境” 的竟?fàn)?Flutter應(yīng)用在一個(gè)VM上運(yùn)行,使得可在保留狀態(tài)且無(wú)需重新編譯情況下,進(jìn)行熱加載。 發(fā)行時(shí),F(xiàn)lutter應(yīng)用會(huì)直接通過(guò)AOT編譯為機(jī)器碼或者是JS。大大提高了開發(fā)效率。

4.初學(xué)者的必看

這里只是博主一個(gè)人想給想學(xué)Flutter的初學(xué)者的一些小小建議:

剛開始學(xué)的時(shí)候會(huì)發(fā)現(xiàn)Flutter和很多語(yǔ)法不一樣,導(dǎo)致自己會(huì)失去學(xué)下去的信心,這時(shí)候一定不要放棄,一定要在感覺(jué)學(xué)不下去的時(shí)候放松一下。我想很多人都是學(xué)了Vue或者React等一些前端框架之后再來(lái)進(jìn)階學(xué)習(xí)Flutter框架,這里就會(huì)導(dǎo)致Flutter的語(yǔ)法與其他的語(yǔ)法有著很大的差距,因此,初學(xué)者就要花費(fèi)很多的時(shí)間和不斷的去適應(yīng)這個(gè)語(yǔ)法,才能以最快的速度去適應(yīng)。遇到問(wèn)題多看Flutter官方文檔,不要?dú)怵H。希望初學(xué)者都能學(xué)有所成,(博主學(xué)這個(gè)的時(shí)候也磨合了一段時(shí)間)

flutter基礎(chǔ)

2.1 Dart語(yǔ)言

Dart語(yǔ)言是flutter語(yǔ)言的基礎(chǔ),一定要去過(guò)一下。如果你有Java的基礎(chǔ),這里基本可以省略。

//構(gòu)造函數(shù)就是我們?cè)趯?shí)例化類的時(shí)候自動(dòng)觸發(fā)得方法

class Persion {

String name = 'aa';

int age = 1;

// 默認(rèn)構(gòu)造器函數(shù)

/*Persion(String name, int age) {

this.name = name;

this.age = age;

}*/

//默認(rèn)構(gòu)造器函數(shù)簡(jiǎn)寫

Persion(this.name, this.age);

//命名構(gòu)造函數(shù)

Persion.now(){

print('我是一個(gè)普通命名構(gòu)造函數(shù)');

var date = new DateTime.now();

print('當(dāng)前時(shí)間:{$date}');

}

void printInfo() {

print('${this.name}-----------${this.age}');

}

}

void main() {

Persion p1 = new Persion('小紅', 18);

p1.printInfo();

Persion p2 = new Persion('大紅', 19);

p2.printInfo();

Persion now = new Persion.now();

}

2.2 初識(shí)Flutter

1、MaterialApp

MaterialApp是一個(gè)方便的Widget,它封裝了應(yīng)用程序?qū)崿F(xiàn)Material Design所需要的一些Widget。一般作為頂層widget使用。

2、Scaffold

Scaffold是Material Design布局結(jié)構(gòu)的基本實(shí)現(xiàn)。此類提供了用于顯示drawer、snackbar和底部sheet 的API。

2.3 GridView網(wǎng)格布局組件介紹

GridView網(wǎng)格布局

GridView網(wǎng)格布局在實(shí)際項(xiàng)目中用的也是非常多的,當(dāng)我們想讓可以滾動(dòng)的元素使用矩陣方式排列的時(shí)候。此時(shí)我們可以用網(wǎng)格列表組件GridView實(shí)現(xiàn)布局。

class HomePage extends StatelessWidget {

const HomePage({Key? key}) : super(key: key);

List _getListData() {

List list = [];

for (var i = 0; i < 20; i++) {

list.add(Container(

alignment: Alignment.center,

color: Colors.blue,

child: Text(

'這是第$i條數(shù)據(jù)',

style: const TextStyle(color: Colors.white, fontSize: 20),

),

// height: 400, //設(shè)置高度沒(méi)有反應(yīng)

));

}

return list;

}

@override

Widget build(BuildContext context) {

return GridView.count(

crossAxisSpacing: 20.0,

//水平子 Widget 之間間距

mainAxisSpacing: 20.0,

//垂直子 Widget 之間間距

padding: const EdgeInsets.all(10),

crossAxisCount: 2,

//一行的 Widget 數(shù)量

childAspectRatio: 0.8,

//寬度和高度的比例

children: _getListData(),

);

}

}

2.4 彈性布局(Flex Expanded)

彈性布局(Flex Expanded)

Row 和 Column 都繼承自 Flex ,參數(shù)基本相同,所以能使用Flex的地方基本上都可以使用 Row 或 Column 。 Flex 本身功能是很強(qiáng)大的,它也可以和 Expanded 組件配合實(shí)現(xiàn)彈性布局 。

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {

const MyApp({super.key});

@override

Widget build(BuildContext context) {

return MaterialApp(

title: 'Material App',

home: Scaffold(

appBar: AppBar(

title: const Text('水平彈性布局'),

),

body: const HomePage()),

);

}

}

class HomePage extends StatelessWidget {

const HomePage({super.key});

@override

Widget build(BuildContext context) {

return Flex(

direction: Axis.horizontal,

children: [

Expanded(

flex: 2,

child: IconContainer(

Icons.home,

color: Colors.green,

)),

Expanded(

flex: 1,

child: IconContainer(

Icons.search,

color: Colors.orange,

),

)

],

);

}

}

class IconContainer extends StatelessWidget {

Color color;

double size;

IconData icon;

IconContainer(this.icon,

{super.key, this.color = Colors.red, this.size = 32});

@override

Widget build(BuildContext context) {

return Container(

height: 100,

width: 100,

color: color,

child: Center(

child: Icon(

icon,

size: size,

color: Colors.blueGrey,

),

),

);

}

}

2.5 Stack層疊組件

Stack

Stack表示堆的意思,我們可以用Stack或者Stack結(jié)合Align或者Stack結(jié)合 Positiond來(lái)實(shí)現(xiàn)頁(yè)面的定位 布局

2.6 Wrap組件

Wrap組件

Wrap可以實(shí)現(xiàn)流布局,單行的Wrap跟Row表現(xiàn)幾乎一致,單列的Wrap則跟Column表現(xiàn)幾乎一致。但 Row與Column都是單行單列的,Wrap則突破了這個(gè)限制,mainAxis上空間不足時(shí),則向crossAxis上 去擴(kuò)展顯示。

持續(xù)更新中

結(jié)尾

本文章會(huì)持續(xù)更新,多多點(diǎn)贊多多支持小猿,你們點(diǎn)贊和收藏是小猿的動(dòng)力,愛(ài)你們。

柚子快報(bào)邀請(qǐng)碼778899分享:Flutter框架詳解

http://yzkb.51969.com/

參考文章

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19068421.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄