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

flutter簡(jiǎn)單使用案例

 更新時(shí)間:2023年05月18日 15:15:53   作者:渠濤濤  
這篇文章主要介紹了使用Flutter短視頻上滑翻頁(yè)效果,本篇介紹了?Flutter的翻頁(yè)組件PageView的使用,通過(guò)?PageView可以輕松實(shí)現(xiàn)類似短視頻的縱向上滑翻頁(yè)的效果,也可以實(shí)現(xiàn)橫向翻頁(yè)效果(如閱讀類軟件),需要的朋友可以參考下

flutter簡(jiǎn)單使用

一篇能夠快速使用的介紹。

前言

快速使用flutter開發(fā)。

一、布局介紹

示例:pandas 是基于NumPy 的一種工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。

二、本地圖片使用

1,將圖片放入images文件夾下。
2,在pubspec.yaml文件中對(duì)圖片進(jìn)行聲明,如果沒有聲明,運(yùn)行時(shí)就會(huì)報(bào)錯(cuò):Unable to load asset: xxx.png。

3,通過(guò) AssetImage(‘images/app.png’),來(lái)加載本地圖片。 網(wǎng)絡(luò)圖片加載Image.network(“http://a.jpg”);

三、網(wǎng)絡(luò)數(shù)據(jù)解析

1,json.decode() 方法會(huì)將 String類型數(shù)據(jù)解析成Map數(shù)據(jù)結(jié)構(gòu):Map<String, dynamic>, 取數(shù)據(jù)的格式為object[key]。
如: List items=response.data[“data”]; //response.data 接口返回?cái)?shù)據(jù)
string name=response.data[“name”];
2,https://javiercbk.github.io/json_to_dart/ 將json數(shù)據(jù)在線生成Json實(shí)體類的地址。
使用:var data= jsonDecode(response.toString());
var newsBean = NewsBean.fromJson(data);

四、路由使用

1,普通跳轉(zhuǎn):
Navigator.push(context, MaterialPageRoute(builder: (BuildContext context) => Page()));
2,帶參數(shù)跳轉(zhuǎn)和接收參數(shù):
跳轉(zhuǎn): Navigator.push(context, MaterialPageRoute(builder: (BuildContext context) => Page1(”我是跳轉(zhuǎn)時(shí)傳的參數(shù)”)));
接收:final String message = ModalRoute.of(context).settings.arguments as String;
3.跳轉(zhuǎn)后攜帶參數(shù)返回:
跳轉(zhuǎn):Future result = Navigator.push(context, MaterialPageRoute(builder: (BuildContext context) => Page2(“我是跳轉(zhuǎn)時(shí)傳的參數(shù)”)));
接收: result.then((res) {
setState(() { //setState是一個(gè)監(jiān)聽的方法 res是返回來(lái)的參數(shù)
_handleMessage = res;
});});
返回:Navigator.of(context).pop(“這是返回?cái)y帶的參數(shù)”);

五、插件的使用

https://pub.flutter-io.cn/flutter/packages插件庫(kù),查找自己想要的插件。

使用Flutter實(shí)現(xiàn)短視頻上滑翻頁(yè)效果

前言

我們?cè)诙桃曨l應(yīng)用中經(jīng)常會(huì)看到不停上滑瀏覽下一條視頻的沉浸式交互效果,這種交互能夠讓用戶不停地翻頁(yè),直到找到喜歡的視頻內(nèi)容,從而營(yíng)造一種不斷“搜尋目標(biāo)”的感覺,讓用戶欲罷不能。這種交互形式在 Flutter 中可以輕松使用 PageView 組件實(shí)現(xiàn)。

PageView 組件介紹

PageView 組件專門設(shè)計(jì)用來(lái)實(shí)現(xiàn)翻頁(yè)效果,類定義如下:

PageView({
    Key? key,
    this.scrollDirection = Axis.horizontal,
    this.reverse = false,
    PageController? controller,
    this.physics,
    this.pageSnapping = true,
    this.onPageChanged,
    List<Widget> children = const <Widget>[],
    this.dragStartBehavior = DragStartBehavior.start,
    this.allowImplicitScrolling = false,
    this.restorationId,
    this.clipBehavior = Clip.hardEdge,
    this.scrollBehavior,
    this.padEnds = true,
  }) 

其中常用的屬性說(shuō)明如下:

  • scrollDirection:滑動(dòng)方向,可以支持縱向翻頁(yè)或橫向翻頁(yè),默認(rèn)是橫向翻頁(yè)。
  • controller:翻頁(yè)控制器,可以通過(guò)控制器來(lái)制定初始頁(yè),以及跳轉(zhuǎn)到具體的頁(yè)面。
  • onPageChanged:翻頁(yè)后的回調(diào)函數(shù),會(huì)告知翻頁(yè)后的頁(yè)碼。
  • reverse:是否反向翻頁(yè),默認(rèn)是 false。如果橫向滑動(dòng)翻頁(yè)的話,如果開啟反向翻頁(yè),則是從右到左翻頁(yè)。如果是縱向翻頁(yè)的話,就是從頂部到底部翻頁(yè)。
  • children:在翻頁(yè)中的組件列表,每一頁(yè)都以自定義組件內(nèi)容,因此這個(gè)組件也可以用于做引導(dǎo)頁(yè),或是類似滑動(dòng)查看詳情的效果。

使用示例

PageView 使用起來(lái)非常簡(jiǎn)單,我們先定義一個(gè)PageView 翻頁(yè)的內(nèi)容組件,簡(jiǎn)單地將接收的圖片文件滿屏顯示。代碼如下,實(shí)際應(yīng)用的時(shí)候可以根據(jù)需要換成其他自定義組件。

 class ImagePageView extends StatelessWidget {
  final String imageName;
  const ImagePageView({Key? key, required this.imageName}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Image.asset(
        imageName,
        fit: BoxFit.fitHeight,
        width: MediaQuery.of(context).size.width,
        height: MediaQuery.of(context).size.height,
      ),
    );
  }
}

之后是定義一個(gè) PageViewDemo 來(lái)應(yīng)用 PageView 翻頁(yè)應(yīng)用示例,代碼如下:

class PageViewDemo extends StatefulWidget {
  const PageViewDemo({Key? key}) : super(key: key);
  @override
  State<PageViewDemo> createState() => _PageViewDemoState();
}
class _PageViewDemoState extends State<PageViewDemo> {
  late PageController _pageController;
  int _pageIndex = 1;
  @override
  void initState() {
    _pageController = PageController(
      initialPage: _pageIndex,
      viewportFraction: 1.0,
    );
    super.initState();
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.black,
      body: PageView(
        scrollDirection: Axis.vertical,
        onPageChanged: (index) {
          _pageIndex = index;
        },
        controller: _pageController,
        allowImplicitScrolling: false,
        padEnds: true,
        reverse: false,
        children: const [
          ImagePageView(imageName: 'images/earth.jpeg'),
          ImagePageView(imageName: 'images/island-coder.png'),
          ImagePageView(imageName: 'images/mb.jpeg'),
        ],
      ),
    );
  }
}

這個(gè)示例里,我們的 pageController 只是演示了設(shè)置初始頁(yè)碼。我們看到的 viewportFraction 可以理解為一頁(yè)內(nèi)容占據(jù)屏幕的比例,比如我們可以設(shè)置該數(shù)值為1/3,支持一個(gè)屏幕分段顯示3個(gè)頁(yè)面內(nèi)容。

PageController 應(yīng)用

PageController 可以控制滑動(dòng)到指定位置,比如我們可以調(diào)用 animateToPage方法實(shí)現(xiàn)一個(gè)快速滑動(dòng)到頂部的懸浮按鈕。

floatingActionButton: FloatingActionButton(
    onPressed: () {
      _pageController.animateToPage(
        0,
        duration: const Duration(
          milliseconds: 1000,
        ),
        curve: Curves.easeOut,
      );
    },
    backgroundColor: Colors.black.withAlpha(180),
    child: const Icon(
      Icons.arrow_upward,
      color: Colors.white,
    ),
  ),

實(shí)現(xiàn)效果如下。

PageController 還有如下控制翻頁(yè)的方法:

  • jumpToPage:跳轉(zhuǎn)到指定頁(yè)面,但是沒有動(dòng)畫。注意這里不會(huì)校驗(yàn)頁(yè)碼是否會(huì)超出范圍。
  • nextPage:滑動(dòng)到下一頁(yè),實(shí)際上調(diào)用的是 animateToPage 方法。
  • previousPage:滑動(dòng)到上一頁(yè),實(shí)際上調(diào)用的是 animateToPage 方法。

總結(jié)

本篇介紹了 Flutter 的翻頁(yè)組件 PageView 的使用,通過(guò) PageView 可以輕松實(shí)現(xiàn)類似短視頻的縱向上滑翻頁(yè)的效果,也可以實(shí)現(xiàn)橫向翻頁(yè)效果(如閱讀類軟件)。在接下來(lái)的系列文章中,本專欄將會(huì)介紹更多 Flutter 實(shí)用的組件。

本篇源碼已上傳至:實(shí)用組件相關(guān)代碼

到此這篇關(guān)于使用 Flutter短視頻上滑翻頁(yè)效果的文章就介紹到這了,更多相關(guān)Flutter短視頻上滑翻頁(yè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android項(xiàng)目中g(shù)radle的執(zhí)行流程

    Android項(xiàng)目中g(shù)radle的執(zhí)行流程

    大家好,本篇文章主要講的是Android項(xiàng)目中g(shù)radle的執(zhí)行流程,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • Android 圖片存入系統(tǒng)相冊(cè)更新顯示實(shí)例詳解

    Android 圖片存入系統(tǒng)相冊(cè)更新顯示實(shí)例詳解

    這篇文章主要介紹了Android 圖片存入系統(tǒng)相冊(cè)更新顯示實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Android入門之Adapter的簡(jiǎn)單使用教程

    Android入門之Adapter的簡(jiǎn)單使用教程

    Adapter其實(shí)就是MVC的概念。這篇文章主要為大家簡(jiǎn)單介紹一下Android中Adapter的簡(jiǎn)單使用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-11-11
  • Android開發(fā)之菜單(menu)用法實(shí)例分析

    Android開發(fā)之菜單(menu)用法實(shí)例分析

    這篇文章主要介紹了Android開發(fā)之菜單(menu)用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android菜單的實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-03-03
  • 手把手教你Android全局觸摸事件監(jiān)聽

    手把手教你Android全局觸摸事件監(jiān)聽

    這篇文章主要介紹了Android全局觸摸事件監(jiān)聽,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 一分鐘快速定位Android啟動(dòng)耗時(shí)問題

    一分鐘快速定位Android啟動(dòng)耗時(shí)問題

    做開發(fā)除了實(shí)現(xiàn)功能,還要注重優(yōu)化,性能優(yōu)化包括的東西還是非常多的,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)一分鐘快速定位Android啟動(dòng)耗時(shí)問題的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • Android 百度地圖POI搜索功能實(shí)例代碼

    Android 百度地圖POI搜索功能實(shí)例代碼

    POI(Point of Interest),中文可以翻譯為“興趣點(diǎn)”。在地理信息系統(tǒng)中,一個(gè)POI可以是一棟房子、一個(gè)商鋪、一個(gè)郵筒、一個(gè)公交站等。通過(guò)本文給大家介紹Android 百度地圖POI搜索功能實(shí)例代碼,需要的朋友參考下
    2016-02-02
  • Android基于Http協(xié)議實(shí)現(xiàn)文件上傳功能的方法

    Android基于Http協(xié)議實(shí)現(xiàn)文件上傳功能的方法

    這篇文章主要介紹了Android基于Http協(xié)議實(shí)現(xiàn)文件上傳功能的方法,結(jié)合實(shí)例形式分析了Android的HTTP協(xié)議原理與文件上傳功能實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-07-07
  • Kotlin如何直接使用控件ID原理詳析

    Kotlin如何直接使用控件ID原理詳析

    這篇文章主要給大家介紹了關(guān)于Kotlin如何直接使用控件ID原理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Android開發(fā)之ProgressBar字體隨著進(jìn)度條的加載而滾動(dòng)

    Android開發(fā)之ProgressBar字體隨著進(jìn)度條的加載而滾動(dòng)

    這篇文章主要介紹了Android開發(fā)之ProgressBar字體隨著進(jìn)度條的加載而滾動(dòng),需要的朋友可以參考下
    2017-09-09

最新評(píng)論

南郑县| 永川市| 察哈| 财经| 罗城| 黄石市| 麻城市| 望江县| 德庆县| 新巴尔虎右旗| 皮山县| 越西县| 渝北区| 封丘县| 南京市| 五华县| 衡东县| 紫金县| 新巴尔虎右旗| 丹寨县| 万全县| 防城港市| 西吉县| 宜黄县| 外汇| 麟游县| 米易县| 甘泉县| 岳普湖县| 鸡泽县| 雅江县| 柘城县| 盘锦市| 永善县| 类乌齐县| 丰顺县| 墨江| 高要市| 固阳县| 凤山县| 疏附县|