Flutter常用組件

工程中遇到的部分常用的或者必要組件記錄

  • WillPopScope

class WillPopScope extends StatefulWidget {
  const WillPopScope({
    Key key,
    @required this.child,
    @required this.onWillPop,
  }) : assert(child != null),
       super(key: key);

參數(shù)onWillPop用來(lái)監(jiān)聽(tīng)當(dāng)用戶按下返回鍵時(shí)child是否關(guān)閉比被,類(lèi)型:typedef WillPopCallback = Future<bool> Function();限定返回值的方法腾供,可用來(lái)實(shí)現(xiàn)類(lèi)似雙擊返

  • BottomNavigationBar

底部導(dǎo)航欄,類(lèi)似TabBar

  • PageView

類(lèi)ViewPage
PageView+CustomScrollView時(shí),翻頁(yè)rebuild的問(wèn)題可以通過(guò)給CustomScrollView設(shè)置不同的Key來(lái)解決
其他ScrollableView應(yīng)該也可以(待測(cè)試)

  • Theme常用屬性

 theme: new ThemeData(
          primarySwatch: Colors.blue,//主色板:不需要指定顏色的空間大多使用該值劳翰,如ListView等的下拉弧線抽减。
          primaryColor: Colors.red,//原色:
          primaryIconTheme: IconThemeData(color: Colors.black),//Icon的顏色,僅限自帶Icons中圖標(biāo)
          primaryTextTheme: TextTheme(title: TextStyle(color: Colors.black, fontFamily: "Aveny")),
          textTheme: TextTheme(title: TextStyle(color: Colors.black))),
      home: new InstaHome(),
  • Flexible

在行和列中使用該控件包裹朝群,可以設(shè)置行和列子組件的大小比例姜盈,類(lèi)似權(quán)重表示行或者列所占的比例哭当,利用flex屬性控制行或者列中內(nèi)容的收縮或者擴(kuò)展模式猪腕。

  • MainAxisAlignment

如何在彈性布局中沿主軸放置子項(xiàng),通常默認(rèn)為MainAxisAlignment.start則通常從主軸的開(kāi)始位置開(kāi)始放置子組件(若為行則水平方向钦勘,列則豎直方向)陋葡。該屬性不僅于Row和Column,部分其他組件亦可用彻采。

  • CrossAxisAlignment

類(lèi)MainAxisAlignment腐缤,如何在彈性布局中沿橫軸放置子項(xiàng)。

  • MainAxisSize

主軸尺寸如min肛响、max岭粤,常與MainAxisAlignment搭配使用

  • MediaQuery

要了解當(dāng)前媒體的大小(例如特笋,包含您應(yīng)用程序的窗口)剃浇,可以從MediaQuery.of:MediaQuery.of(context).size返回的MediaQueryData中讀取MediaQueryData.size屬性。文檔入口
MediaQuery.of(context).padding.top//頂部statusBar高度

SizedBox(child: XXX(),height: deviceSize.height * 0.15, )依據(jù)屏幕比例設(shè)置組件高度
  • BoxDecoration

繪制邊框猎物。BoxDecoration類(lèi)提供了多種繪制框的方法虎囚。該框具有邊框,主體霸奕,并可以投射boxShadow溜宽。
BoxDecoration的形狀可以是圓形或矩形。如果是矩形质帅,則borderRadius屬性控制角的圓度适揉。
BoxDecoration的主體是分層繪制的。最底層是顏色煤惩,它填充了該框嫉嘀。在此之上的是漸變,漸變也填充了該框魄揉。最后是圖像剪侮,其精確對(duì)齊由DecorationImage類(lèi)控制。
shape或borderRadius不會(huì)修剪裝飾的Container的子級(jí)洛退。如果需要剪輯瓣俯,請(qǐng)插入剪輯小部件(例如ClipRect,ClipRRect兵怯,ClipPath)作為Container的子級(jí)彩匕。請(qǐng)注意,裁剪可能會(huì)導(dǎo)致性能損失媒区。也可以看看:
DecoratedBox和Container驼仪,可以使用BoxDecoration對(duì)象配置的小部件掸犬。
CustomPaint,一個(gè)小部件绪爸,可讓您繪制任意圖形湾碎。
Decoration,可讓您定義其他裝飾的基類(lèi)奠货。

  • FractionallySizedBox

child按給的比例顯示大小介褥,若給定的寬高比不一致,則依據(jù)兩者中小者顯示

 FractionallySizedBox(
                  heightFactor: 0.5,
                  widthFactor: 0.5,
                  child: FlutterLogo(),
                )
  • RandomContainer

背景色自由變更的Container

  • DragTarget&Draggable

拖動(dòng)目標(biāo)控件&拖動(dòng)控件

Draggable(
          child: Container(//可拖動(dòng)控件原型
            decoration: BoxDecoration(
              shape: BoxShape.rectangle,
              color: Colors.blue,
            ),
            height: 100,
            width: 100,
          ),
          childWhenDragging: Container(//拖動(dòng)時(shí)顯示的Widget
            decoration: BoxDecoration(
              shape: BoxShape.rectangle,
              borderRadius: BorderRadius.circular(30),
              color: Colors.green,
            ),
            height: 100,
            width: 100,
//          color: Colors.red,
          ),
          feedback: Container(//原控件移動(dòng)之后原地丟下的Widget
            decoration: BoxDecoration(
              shape: BoxShape.rectangle,
              color: Colors.red,
              borderRadius: BorderRadius.circular(30),
            ),
            height: 100,
            width: 100,
          ),
        )

DragTarget

DragTarget(
              builder: (BuildContext context, List<dynamic> accepted, List<dynamic> rejected) => Container(
                height: 200.0,
                width: 200.0,
                decoration: BoxDecoration(color: Colors.cyan),
                child: Center(//
                  child: Column(children: <Widget>[Text(accpeptedData.toString()),Text(rejectData.toString())],),
                ),
              ),
              onAccept: (int data) {//拖動(dòng)到指定位置仇味,且接收數(shù)據(jù)
                accpeptedData = data;
              },
              onLeave: (int data){//拖動(dòng)到指定位置之后取消
                rejectData=data;
              },
            )
  • CircleAvatar

類(lèi)似腳注或者其他注釋呻顽,消息提示紅點(diǎn)雹顺,登陸頭像等丹墨。

  • Placeholder

組件占位符

  • Spacer

使用flex屬性控制大小
Spacer小部件將占用任何可用空間,因此將包含Spacer的Flex容器上的Flex.mainAxisAlignment設(shè)置為MainAxisAlignment.spaceAround嬉愧,MainAxisAlignment.spaceBetween或MainAxisAlignment.spaceEvenly不會(huì)產(chǎn)生任何可見(jiàn)效果:Spacer占用了所有空間 的額外空間贩挣,因此沒(méi)有剩余可重新分配。
可用來(lái)調(diào)節(jié)Row没酣、Colmun王财、Flex等組件

  • Visibility

visible: false控制組件是否可見(jiàn)

  • SearchDelegate

Scaffold中方法showSearch(),系統(tǒng)自帶的輔助搜索功能裕便,showSearch(context: context, delegate: DataSearch());需要自定義Delegate繼承父Delegate且實(shí)現(xiàn)其中的方法如下

  @override
  List<Widget> buildActions(BuildContext context) {
    return [...];//類(lèi)AppBar的Actions
  }

  @override
  Widget buildLeading(BuildContext context) {
    return ...;//頭部類(lèi)AppBar頭部
  }

  @override
  Widget buildResults(BuildContext context) {
    return ..;//搜索結(jié)果
  }

  @override
  Widget buildSuggestions(BuildContext context) {
      return ...;//搜索提示绒净,配合富文本之類(lèi)的已輸入的黑體未輸入的灰體
  }

  • AnimatedIcons

已實(shí)現(xiàn)的動(dòng)畫(huà)轉(zhuǎn)場(chǎng)效果如視頻播放時(shí)暫停到播放的轉(zhuǎn)換,menu到arrow的轉(zhuǎn)換等

_controller = AnimationController(
      duration: const Duration(milliseconds: 300),
      value: 1.0,
      vsync: this,
    );
....
AnimatedIcon(
              icon: AnimatedIcons.close_menu,
              semanticLabel: 'close',
              progress: _controller.view,
            )

progress用來(lái)控制進(jìn)度偿衰,

  • RichText&TextSpan

富文本

RichText(
              text: TextSpan(
                  text: suggestionList[index].substring(0, query.length),
                  style: TextStyle(
                      color: Colors.black, fontWeight: FontWeight.bold),//已輸入的搜索部分
                  children: [
                    TextSpan(//未輸入的部分
                        text: suggestionList[index].substring(query.length),
                        style: TextStyle(color: Colors.grey))
                  ]),
            )
  • Hero

直接使用該組件包裹希望制作動(dòng)畫(huà)的圖片或者組件(兩個(gè)頁(yè)面都需要)挂疆,再在兩個(gè)Hero組件中添加tag標(biāo)簽,以便Flutter規(guī)劃動(dòng)畫(huà)的路徑下翎。

  • Align

設(shè)置相對(duì)位置

alignment: Alignment.lerp(Alignment.centerRight, Alignment.bottomRight, 0.5),)

除已經(jīng)預(yù)設(shè)好的位置還可以使用上面參數(shù)自定義位置缤言,前兩參數(shù)可理解為參數(shù),最后一個(gè)為偏移量

CachedNetworkImage(
       imageUrl: url,
       placeholder: (context,url) => CircularProgressIndicator(),//加載中View
       errorWidget: (context,url,error) => new Icon(Icons.error),//加載失敗的View
     ),

相較與Image.Network()视事,直接提供了加載結(jié)果的處理入口,ImageNetwork如下胆萧,跟自由度更高

Image.network(
                  '${Api.imgHeadHorizon}${model.backdropPath}',
                  height: imgHeight,
                  width: size.width,
                  fit: BoxFit.fill,
                  loadingBuilder: (context, widget, loadingProgress) {
                    if (loadingProgress != null) {//開(kāi)始時(shí)為空需判斷
                      //下面表達(dá)式中前者為當(dāng)前已經(jīng)下載的字節(jié)數(shù),后者為字節(jié)總數(shù)俐东,可通過(guò)除法獲取百分比
                      if(loadingProgress.cumulativeBytesLoaded == loadingProgress.expectedTotalBytes){
                        print('(*^__^*) ');
                      }
                    }
                    return Container(color: Colors.cyan,);//如果沒(méi)特殊要求直接返回widget就好跌穗。
                  },
  • Divider

分割線,對(duì)象

  • AnimatedCrossFade

AnimatedCrossFade(
      firstChild: first,
      secondChild: second,
      firstCurve: const Interval(0.0, 0.6, curve: Curves.fastOutSlowIn),
      secondCurve: const Interval(0.4, 1.0, curve: Curves.fastOutSlowIn),
      sizeCurve: Curves.fastOutSlowIn,
      crossFadeState: isExpanded ? CrossFadeState.showSecond : CrossFadeState.showFirst,
      duration: const Duration(milliseconds: 200),
    );

兩個(gè)界面的過(guò)渡虏辫,比如加載圖片時(shí)默認(rèn)和加載完成的過(guò)渡蚌吸,或者其他疊加布局時(shí)布局切換的過(guò)渡

擴(kuò)展收縮的ListView或者Panel,若不是LIst可以考慮使用ExpansionTile

  • ListView&GridView滑動(dòng)監(jiān)聽(tīng)

          if (controller.position.extentAfter == 0) {
                        
          }

方法二
...

  • IgnorePointer

  • IgnorePointer會(huì)攔截將要進(jìn)入自己內(nèi)部的觸摸事情乒裆,并向后傳遞

  • Matrix4

屬性如下

//scale:縮放比例
Matrix4.diagonal3Values(2, 1, 1)
Matrix4.diagonal3(v.Vector3(2, 1, 1))
Matrix4.diagonal3(v.Vector3.array([2, 1, 1]))
//transform: 移動(dòng)
Matrix4.translationValues(30, 0, 0)
Matrix4.translation(v.Vector3(30, 0, 0))
Matrix4.translation(v.Vector3.array([0, -30, 0]))
//rotationZ:繞Z軸旋轉(zhuǎn)
//rotationX:繞X軸旋轉(zhuǎn)
//rotationY:繞Y軸旋轉(zhuǎn)
Matrix4.rotationZ(pi / 6)
Matrix4(cos(pi / 6), sin(pi / 6), 0, 0,-sin(pi / 6), cos(pi / 6), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)
//columns:設(shè)置一個(gè)新的矩陣
//compose:復(fù)合平移套利、旋轉(zhuǎn)推励、縮放,形成新的狀態(tài)
Matrix4.columns( Vector3 translation, Quaternion rotation, Vector3 scale) 
//copy:復(fù)制一個(gè)4*4的張量(矩陣)
//identity:恢復(fù)初始狀態(tài)肉迫,也就是4*4的單位矩陣
//inverted:取相反的矩陣验辞,就是反著來(lái)
//outer(合并)、skew(扭曲)喊衫、skewX(x軸扭曲)跌造、skewY(y軸扭曲)、zero(置零矩陣)族购、fromList(將一個(gè)16位的一維數(shù)組轉(zhuǎn)換成4*4的矩陣)
  • NotificationListener(widget) 監(jiān)聽(tīng)其子View滑動(dòng)狀態(tài)壳贪。子View的滾動(dòng)事件并發(fā)送通知

NotificationListener<ScrollNotification>(//只接受某個(gè)子類(lèi)型的通知
          child: SingleChildScrollView(
            child: Column(
              children: <Widget>[
                Container(
                  height: 900,
                  width: double.infinity,
                  color: Colors.red,
                )
              ],
            ),
          ),
          onNotification: (_){print('1111111');},//返回true則事件不在傳遞,false則繼續(xù)往父控件傳遞
        ),

child通常為scrollableView

  • ScrollStartNotification寝杖,它指示小部件已開(kāi)始滾動(dòng)违施。通常為最先接收到的Notification

  • 零個(gè)或多個(gè)ScrollUpdateNotifications(指示小部件已更改其滾動(dòng)位置)

  • 零個(gè)或多個(gè)ScrollUpdateNotifications與零個(gè)或多個(gè)OverscrollNotifications混合,指示小部件未更改其滾動(dòng)位置瑟幕,因?yàn)楦臅?huì)導(dǎo)致其滾動(dòng)位置超出其滾動(dòng)范圍磕蒲。如滾動(dòng)到最頂部或者最底部

  • 與ScrollUpdateNotifications和OverscrollNotifications穿插的是零個(gè)或多個(gè)UserScrollNotifications,它們表示用戶已更改其滾動(dòng)方向只盹。如水平滑動(dòng)之后直接豎直滑動(dòng)會(huì)調(diào)用UserScrollNotifications

  • ScrollEndNotification辣往,它指示小部件已停止?jié)L動(dòng)。標(biāo)志滾動(dòng)事件結(jié)束
    一個(gè)UserScrollNotification殖卑,其ScrollDirection.idle的UserScrollNotification.direction站削。
    滑動(dòng)事件從開(kāi)始到結(jié)束 ScrollStartNotification--->UserScrollNotification(從無(wú)到有和從有到無(wú)都算變化)--->OverscrollNotification/ScrollUpdateNotifications--->ScrollEndNotification--->UserScrollNotification

  • notification.depth=0/1/...表示監(jiān)聽(tīng)的深度,通常處理深度為0的及多層可滾動(dòng)只處理當(dāng)前子控件的滾動(dòng)

  • CustomScrollView

結(jié)合了ScrollView和SliverAppBar(基于SliverPersistentHeader實(shí)現(xiàn))的控件

 Scaffold(
      body: CustomScrollView(
        slivers: <Widget>[
          SliverAppBar(//折疊頭部
            title: Text('SliverDemoPage'),
            centerTitle: true,
            expandedHeight: 300,
            forceElevated: true,
             pinned: true,//折疊后不消失
            floating: true,// 當(dāng)有下滑手勢(shì)的時(shí)候孵稽,就會(huì)顯示 AppBar
            snap: true,// 當(dāng)下滑到一定比例许起,會(huì)自動(dòng)把 AppBar 展開(kāi)
            flexibleSpace: FlexibleSpaceBar(
              collapseMode: CollapseMode.parallax,
              background: Image.asset(
                'images/joker.jpg',
                fit: BoxFit.fill,
              ),
            ),
          ),
          SliverFillRemaining(child: Center(child: Text('填充剩余空間'),),)//填充剩余空間
        ],
      ),
    );

Slivers相關(guān)

  • SliverFillViewport
  • SliverFillRemaining
  • SliverFixedExtentList
  • SliverToBoxAdapter
  • SliverPadding
  • SliverPersistentHeader&SliverPersistentHeaderDelegate(SliverAppBar的內(nèi)部實(shí)現(xiàn))

若CustomScrollView底部橫向和縱向滾動(dòng)的沖突目前沒(méi)有解決辦法

  • NestedScrollView

  • SliverOverlapAbsorber
  • SliverOverlapInjector

Scrollbar


AnimationController

動(dòng)畫(huà)的控制器。
此類(lèi)可讓您執(zhí)行以下任務(wù):
向前或向后播放動(dòng)畫(huà)肛冶,或停止動(dòng)畫(huà)街氢。
將動(dòng)畫(huà)設(shè)置為特定值。
定義動(dòng)畫(huà)的upperBound和LowerBound值睦袖。
使用物理模擬創(chuàng)建猛沖動(dòng)畫(huà)效果珊肃。
默認(rèn)情況下,AnimationController在給定的持續(xù)時(shí)間內(nèi)線性生成的值介于0.0到1.0之間馅笙。 每當(dāng)運(yùn)行您的應(yīng)用的設(shè)備準(zhǔn)備顯示新幀時(shí)伦乔,動(dòng)畫(huà)控制器都會(huì)生成一個(gè)新值(通常,此速率約為每秒60個(gè)值)董习。

Listenable

維護(hù)偵聽(tīng)器列表的對(duì)象烈和。
偵聽(tīng)器通常用于通知客戶端對(duì)象已更新。
此接口有兩種變體:
ValueListenable皿淋,一個(gè)使用當(dāng)前值的概念擴(kuò)展Listenable接口的接口招刹。
動(dòng)畫(huà)恬试,一個(gè)擴(kuò)展ValueListenable接口以添加方向(正向或反向)概念的接口。
Flutter API中的許多類(lèi)都使用或?qū)崿F(xiàn)這些接口疯暑。 以下子類(lèi)特別相關(guān):
ChangeNotifier训柴,可以將其子類(lèi)化或混入以創(chuàng)建實(shí)現(xiàn)Listenable接口的對(duì)象。
ValueNotifier妇拯,它使用可變值實(shí)現(xiàn)ValueListenable接口幻馁,該可變值在修改后會(huì)觸發(fā)通知。

CurvedAnimation

將曲線應(yīng)用于另一個(gè)動(dòng)畫(huà)的動(dòng)畫(huà)越锈。
當(dāng)您想對(duì)動(dòng)畫(huà)對(duì)象應(yīng)用非線性曲線時(shí)仗嗦,特別是在動(dòng)畫(huà)前進(jìn)和后退時(shí)想要不同的曲線時(shí),CurvedAnimation很有用甘凭。
根據(jù)給定的曲線稀拐,CurvedAnimation的輸出范圍可能比其輸入范圍大。 例如对蒲,諸如Curves.elasticIn之類(lèi)的彈性曲線將大大超出或低于默認(rèn)范圍0.0到1.0钩蚊。

Interval

直到開(kāi)始時(shí)為0.0的曲線,然后從開(kāi)始處的0.0彎曲到結(jié)束處的彎曲(根據(jù)曲線)蹈矮,然后在結(jié)束處保持1.0。
間隔可用于延遲動(dòng)畫(huà)鸣驱。 例如泛鸟,使用Interval(開(kāi)始時(shí)間設(shè)置為0.5,結(jié)束時(shí)間設(shè)置為1.0)的Interval的六秒鐘動(dòng)畫(huà)實(shí)際上將變成三秒鐘的動(dòng)畫(huà)踊东,該動(dòng)畫(huà)在三秒鐘后開(kāi)始北滥。

          Opacity(
            opacity: CurvedAnimation(
              parent: ReverseAnimation(animation),
              curve: const Interval(0.5, 1.0),// Curves.***(easeInOut)
            ).value,
            child: const Text('Select a Category'),
          ),

AnimatedWidget

當(dāng)給定的Listenable更改值時(shí)重建的小部件。
AnimatedWidget最常與可收聽(tīng)的Animation對(duì)象一起使用闸翅,但可與任何Listenable(包括ChangeNotifier和ValueNotifier)一起使用再芋。
AnimatedWidget對(duì)于否則為無(wú)狀態(tài)的小部件最有用。 要使用AnimatedWidget坚冀,只需將其子類(lèi)化并實(shí)現(xiàn)build函數(shù)济赎。

  BackDropTitle({Key key, Listenable listenable}) : super(key: key, listenable: listenable);

  @override
  Widget build(BuildContext context) {
    //animation extends Listenable
    final Animation<double> animation = listenable;
    return DefaultTextStyle(
      style: Theme.of(context).textTheme.title,
      softWrap: false,
      overflow: TextOverflow.ellipsis,
      child: Stack(
        children: <Widget>[
          Opacity(opacity: CurvedAnimation(parent: ReverseAnimation(animation), curve: Curves.easeInOut).value)
        ],
      ),
    );
  }

RotatedBox

 RotatedBox(
                  quarterTurns: 1, //1順時(shí)針90度,2順時(shí)針180度记某,3 順時(shí)針270度 司训,4順時(shí)針360度
                  child: Text("Hello world")
              ),

LayoutBuilder

大小不確定的布局,繪制時(shí)返回大小液南,可以根據(jù)大小返回不同布局

Material

 const Material({
    Key key,
    this.type = MaterialType.canvas,
    this.elevation = 0.0,
    this.color,
    this.shadowColor = const Color(0xFF000000),
    this.textStyle,
    this.borderRadius,
    this.shape,
    this.borderOnForeground = true,
    this.clipBehavior = Clip.none,
    this.animationDuration = kThemeChangeDuration,
    this.child,
  })

一個(gè)屬性比較全的小控件壳猜,形狀,圓角滑凉,裁剪等

ListTileTheme

一個(gè)繼承的窗口小部件统扳,它為該窗口小部件的子樹(shù)中的ListTiles定義顏色和樣式參數(shù)喘帚。
此處指定的值用于沒(méi)有指定顯式非null值的ListTile屬性。
Drawer小部件為其子級(jí)指定一個(gè)tile主題咒钟,該主題將樣式設(shè)置為L(zhǎng)istTileStyle.drawer啥辨。
*了狗了 一萬(wàn)個(gè)小部件

PositionedTransition

Positioned的動(dòng)畫(huà)版本,采用特定的Animation <RelativeRect>在動(dòng)畫(huà)的整個(gè)生命周期中將孩子的位置從開(kāi)始位置轉(zhuǎn)換到結(jié)束位置盯腌。
僅當(dāng)它是Stack的子代時(shí)才有效溉知。
這是PositionedTransition小部件的圖示,其由設(shè)置為Curves.elasticInOut的CurvedAnimation進(jìn)行矩形動(dòng)畫(huà)處理:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腕够,一起剝皮案震驚了整個(gè)濱河市级乍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌帚湘,老刑警劉巖玫荣,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異大诸,居然都是意外死亡捅厂,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)资柔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)焙贷,“玉大人,你說(shuō)我怎么就攤上這事贿堰≌奚郑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵羹与,是天一觀的道長(zhǎng)故硅。 經(jīng)常有香客問(wèn)我,道長(zhǎng)纵搁,這世上最難降的妖魔是什么吃衅? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮腾誉,結(jié)果婚禮上徘层,老公的妹妹穿的比我還像新娘。我一直安慰自己妄辩,他們只是感情好惑灵,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著眼耀,像睡著了一般英支。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哮伟,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天干花,我揣著相機(jī)與錄音妄帘,去河邊找鬼。 笑死池凄,一個(gè)胖子當(dāng)著我的面吹牛抡驼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肿仑,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼致盟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了尤慰?” 一聲冷哼從身側(cè)響起馏锡,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎伟端,沒(méi)想到半個(gè)月后杯道,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡责蝠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年党巾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片霜医。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡齿拂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出支子,到底是詐尸還是另有隱情创肥,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布值朋,位于F島的核電站,受9級(jí)特大地震影響巩搏,放射性物質(zhì)發(fā)生泄漏昨登。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一贯底、第九天 我趴在偏房一處隱蔽的房頂上張望丰辣。 院中可真熱鬧,春花似錦禽捆、人聲如沸笙什。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)琐凭。三九已至,卻和暖如春浊服,著一層夾襖步出監(jiān)牢的瞬間统屈,已是汗流浹背胚吁。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留愁憔,地道東北人腕扶。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像吨掌,于是被迫代替她去往敵國(guó)和親半抱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 前言 demo地址 由于我電腦一直沒(méi)搞好as膜宋,(主要是Android sdk的問(wèn)題)窿侈,所以用的vs開(kāi)發(fā)學(xué)習(xí),而且v...
    錦鯉躍龍閱讀 4,740評(píng)論 0 12
  • MaterialApp 屬性 builder:用于將小部件插入導(dǎo)航器上方但位于由widgetsapp小部件創(chuàng)建的其...
    周尚千尋閱讀 1,397評(píng)論 0 0
  • 一個(gè)擁有繪制激蹲、定位棉磨、調(diào)整大小的 widget。 最常用的默認(rèn)布局学辱!只能包含一個(gè)child:乘瓤,支持配置 paddin...
    一晚TT用了八個(gè)閱讀 457評(píng)論 0 0
  • flutter中所有的東西都是組件(widget),組件又分為動(dòng)態(tài)組件(StatefulWidget)策泣、靜態(tài)組件(...
    SFHinc閱讀 1,647評(píng)論 0 1
  • 網(wǎng)絡(luò)請(qǐng)求 http ^0.11.3+16 pub.dartlang.org/packages/ht… github...
    ibobo999閱讀 2,316評(píng)論 0 20