最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flutter 自定義Drawer 滑出位置的大小實(shí)例代碼詳解

 更新時(shí)間:2020年04月17日 10:18:54   作者:三掌柜666  
這篇文章主要介紹了Flutter 自定義Drawer 滑出位置的大小,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Flutter開發(fā)過程中,Drawer控件的使用頻率也是比較高的,其實(shí)有過移動(dòng)端開發(fā)經(jīng)驗(yàn)的人來(lái)說(shuō),F(xiàn)lutter中的Drawer控件就相當(dāng)于ios開發(fā)或者Android開發(fā)中的“抽屜”效果,從側(cè)邊欄滑出導(dǎo)航菜單。對(duì)于Flutter中的Drawer控件的常規(guī)用法就不多介紹,網(wǎng)上大把的教程。

那么本篇博文分享一個(gè)網(wǎng)上教程不多的一個(gè)知識(shí)點(diǎn),那就是自定義Drawer的滑出位置的大小,自定義Drawer滑出位置就需要修改一個(gè)double的widthPercent屬性,widthPercent一般默認(rèn)值是0.7,然后想要修改widthPercent的默認(rèn)值,或者設(shè)置想要的任何大于0小于1之間的值都可以根據(jù)這個(gè)來(lái)設(shè)置。具體操作如下所示:

1、首先封裝這個(gè)方法(看官可以直接復(fù)制使用)

class CustomDrawer extends StatelessWidget {

 final double elevation;

 final Widget child;

 final String semanticLabel;

 final double widthPercent;

 const CustomDrawer({

  Key key,

  this.elevation = 16.0,

  this.child,

  this.semanticLabel,

  this.widthPercent = 0.7,

 }) :

  assert(widthPercent!=null&&widthPercent<1.0&&widthPercent>0.0)

  ,super(key: key);

 @override

 Widget build(BuildContext context) {

  assert(debugCheckHasMaterialLocalizations(context));

  String label = semanticLabel;

  switch (defaultTargetPlatform) {

   case TargetPlatform.iOS:

    label = semanticLabel;

    break;

   case TargetPlatform.android:

   case TargetPlatform.fuchsia:

    label = semanticLabel ?? MaterialLocalizations.of(context)?.drawerLabel;

  }

  final double _width=MediaQuery.of(context).size.width*widthPercent;

  return Semantics(

   scopesRoute: true,

   namesRoute: true,

   explicitChildNodes: true,

   label: label,

   child: ConstrainedBox(

    constraints: BoxConstraints.expand(width: _width),

    child: Material(

     elevation: elevation,

     child: child,

    ),

   ),

  );

 }

}

2、調(diào)用的地方

 @override

 Widget build(BuildContext context) {

  return InkWell(

   onTap: () {

    Navigator.of(context).pop();

    Navigator.of(context).push(new MaterialPageRoute(

      builder: (BuildContext context) => new AccountManagersPage('')));

   },

   child: new CustomDrawer( //調(diào)用修改Drawer的方法

    widthPercent:0.5, //設(shè)置Drawer滑出位置居屏幕的一半寬度

    child: Container(

     color: Color(0xFF1F1D5B),

     child: Column(

      children: <Widget>[

       Expanded(

        child: ListView(children: <Widget>[

         Column(

          children: <Widget>[

           ListTile(

            title: Text('設(shè)備列表',

              style: TextStyle(color: Color(0xFF8B89EF))),

            contentPadding: EdgeInsets.symmetric(

              horizontal: 15.0, vertical: 0.0),

           ),

           ListTile(

             leading: CircleAvatar(

              backgroundImage: new ExactAssetImage(

                'images/menu_lamp_pole.png'),

              radius: 15.0,

             ),

             title: Text('燈桿',

               style: TextStyle(

                color: Color(0xFFffffff),

                fontSize: 18.0,

               )),

             onTap: () {

              Navigator.of(context).pop();

              //Navigator.of(context).push(new MaterialPageRoute(builder:(BuildContext context) => new BigScreenPage(0,'燈桿列表')));

              Navigator.of(context).push(new MaterialPageRoute(

                builder: (BuildContext context) =>

                  new MainPoleView()));

             }),

           // Divider(),

           ListTile(

             leading: CircleAvatar(

              backgroundImage:

                new ExactAssetImage('images/menu_charge.png'),

              radius: 15.0,

             ),

             title: Text('充電樁',

               style: TextStyle(

                color: Color(0xFFffffff),

                fontSize: 18.0,

               )),

             onTap: () {

              Navigator.of(context).pop();

              Navigator.of(context).push(new MaterialPageRoute(

                builder: (BuildContext context) =>

                  new BigScreenPage(6, '充電樁列表')));

             }),

           ],

         )

        ]),

       )

      ],

     ),

    ),

   ),

  );

 }

實(shí)現(xiàn)效果如下所示:

總結(jié)

到此這篇關(guān)于Flutter 自定義Drawer 滑出位置的大小的文章就介紹到這了,更多相關(guān)flutter 自定義drawer內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android編程中軟鍵盤基本用法分析

    Android編程中軟鍵盤基本用法分析

    這篇文章主要介紹了Android編程中軟鍵盤基本用法,結(jié)合實(shí)例形式分析了Android軟鍵盤的顯示、隱藏與使用注意事項(xiàng),需要的朋友可以參考下
    2016-10-10
  • 簡(jiǎn)單掌握Android Widget桌面小部件的創(chuàng)建步驟

    簡(jiǎn)單掌握Android Widget桌面小部件的創(chuàng)建步驟

    這篇文章主要介紹了簡(jiǎn)單掌握Android Widget桌面小部件的創(chuàng)建步驟,Widget一般采用web前端技術(shù)進(jìn)行開發(fā),需要的朋友可以參考下
    2016-03-03
  • Android調(diào)用手機(jī)拍照功能的方法

    Android調(diào)用手機(jī)拍照功能的方法

    這篇文章主要介紹了Android調(diào)用手機(jī)拍照功能的方法,實(shí)例分析了Android調(diào)用手機(jī)拍照功能及顯示圖片的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • Android使用VideoView播放本地視頻和網(wǎng)絡(luò)視頻的方法

    Android使用VideoView播放本地視頻和網(wǎng)絡(luò)視頻的方法

    本文將講解如何使用Android視頻播放器VideoView來(lái)播放本地視頻和網(wǎng)絡(luò)視頻,實(shí)現(xiàn)起來(lái)還是比較簡(jiǎn)單的,有需要的可以參考借鑒。
    2016-08-08
  • Android使用AudioManager修改系統(tǒng)音量的方法

    Android使用AudioManager修改系統(tǒng)音量的方法

    這篇文章主要介紹了Android使用AudioManager修改系統(tǒng)音量的方法,結(jié)合實(shí)例形式分析了AudioManager調(diào)節(jié)音量的常用方法及相關(guān)使用技巧,需要的朋友可以參考下
    2016-08-08
  • Android Google AutoService框架使用詳解

    Android Google AutoService框架使用詳解

    AutoService是Google開發(fā)一個(gè)自動(dòng)生成SPI清單文件的框架??催^一些基于APT的三方框架源碼的讀者應(yīng)該有所了解。比如Arouter、EventBus等等
    2022-11-11
  • Kotlin中空判斷與問號(hào)和感嘆號(hào)標(biāo)識(shí)符使用方法

    Kotlin中空判斷與問號(hào)和感嘆號(hào)標(biāo)識(shí)符使用方法

    最近使用kotlin重構(gòu)項(xiàng)目,遇到了一個(gè)小問題,在Java中,可能會(huì)遇到判斷某個(gè)對(duì)象是否為空,為空?qǐng)?zhí)行一段邏輯,不為空?qǐng)?zhí)行另外一段邏輯,下面這篇文章主要給大家介紹了關(guān)于Kotlin中空判斷與問號(hào)和感嘆號(hào)標(biāo)識(shí)符處理操作的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Android如何實(shí)現(xiàn)社交應(yīng)用中的評(píng)論與回復(fù)功能詳解

    Android如何實(shí)現(xiàn)社交應(yīng)用中的評(píng)論與回復(fù)功能詳解

    目前,各種App的社區(qū)或者用戶曬照片、發(fā)說(shuō)說(shuō)的地方,都提供了評(píng)論功能,為了更好地學(xué)習(xí),自己把這個(gè)功能實(shí)現(xiàn)了一下,下面這篇文章主要給大家介紹了關(guān)于Android如何實(shí)現(xiàn)社交應(yīng)用中的評(píng)論與回復(fù)功能的相關(guān)資料,需要的朋友可以參考下
    2018-07-07
  • android工程下不能運(yùn)行java main程序的解決方法

    android工程下不能運(yùn)行java main程序的解決方法

    這篇文章主要介紹了android工程下不能運(yùn)行java main程序的解決方法,需要的朋友可以參考下
    2014-05-05
  • android IPC之binder通信機(jī)制

    android IPC之binder通信機(jī)制

    Binder通信機(jī)制說(shuō)來(lái)簡(jiǎn)單,但是在使用的過程的遇到了一些問題,最后終于解決了,現(xiàn)在曬出來(lái)和大家分享一下,希望可以幫助你們
    2012-11-11

最新評(píng)論

福鼎市| 祥云县| 类乌齐县| 包头市| 确山县| 垫江县| 宁蒗| 潮州市| 天津市| 玛曲县| 鹤壁市| 延寿县| 牡丹江市| 阿鲁科尔沁旗| 曲松县| 邓州市| 林西县| 和平县| 宣化县| 湘潭县| 大关县| 吴堡县| 健康| 政和县| 江源县| 开封县| 会东县| 堆龙德庆县| 余庆县| 拉萨市| 清水县| 商水县| 兖州市| 札达县| 和静县| 德保县| 孙吴县| 庆安县| 翁牛特旗| 米脂县| 凤城市|