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

Flutter中ListView 的使用示例

 更新時(shí)間:2018年07月27日 11:25:31   作者:劉斯龍  
這篇文章主要介紹了Flutter中ListView 的使用示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

這個(gè)小例子使用的是豆瓣 API 中 正在上映的電影 的開放接口,要實(shí)現(xiàn)的主要效果如下:

JSON 數(shù)據(jù)結(jié)構(gòu)

Item 結(jié)構(gòu)

Item 的結(jié)構(gòu)是一個(gè) Card 包含著一個(gè) Row 然后這個(gè) Row 里面左邊是一個(gè) Image ,右邊是一個(gè) Column

功能實(shí)現(xiàn)

  1. material 庫(kù)
  2. Json 解析
  3. 網(wǎng)絡(luò)請(qǐng)求
  4. 加載菊花

要實(shí)現(xiàn)上面四個(gè)功能,我們首先需要在 .dart 文件中引入如下代碼

import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';

網(wǎng)絡(luò)請(qǐng)求

loadData() async {
 String loadRUL = "https://api.douban.com/v2/movie/in_theaters";
 http.Response response = await http.get(loadRUL);
 var result = json.decode(response.body);
 setState(() {
  title = result['title'];
  print('title: $title');
  subjects = result['subjects'];
 });
 }

ListView && 加載菊花

getBody() {
 if (subjects.length != 0) {
  return ListView.builder(
   itemCount: subjects.length,
   itemBuilder: (BuildContext context, int position) {
   return getItem(subjects[position]);
   });
 } else {
  // 加載菊花
  return CupertinoActivityIndicator();
 }
 }

Item編寫

getItem(var subject) {
// 演員列表
 var avatars = List.generate(subject['casts'].length, (int index) =>
  Container(
   margin: EdgeInsets.only(left: index.toDouble() == 0.0 ? 0.0 : 16.0),

   child: CircleAvatar(
    backgroundColor: Colors.white10,
    backgroundImage: NetworkImage(
     subject['casts'][index]['avatars']['small']
    )
   ),
  ),
 );
 var row = Container(
  margin: EdgeInsets.all(4.0),
  child: Row(
  children: <Widget>[
   ClipRRect(
   borderRadius: BorderRadius.circular(4.0),
   child: Image.network(
    subject['images']['large'],
    width: 100.0, height: 150.0,
    fit: BoxFit.fill,
   ),
   ),
   Expanded(
    child: Container(
    margin: EdgeInsets.only(left: 8.0),
    height: 150.0,
    child: Column(
     crossAxisAlignment: CrossAxisAlignment.start,
     children: <Widget>[
//     電影名稱
     Text(
      subject['title'],
      style: TextStyle(
      fontWeight: FontWeight.bold,
      fontSize: 20.0,
      ),
      maxLines: 1,
     ),
//     豆瓣評(píng)分
     Text(
      '豆瓣評(píng)分:${subject['rating']['average']}',
      style: TextStyle(
       fontSize: 16.0
      ),
     ),
//     類型
     Text(
      "類型:${subject['genres'].join("、")}"
     ),
//     導(dǎo)演
     Text(
      '導(dǎo)演:${subject['directors'][0]['name']}'
     ),
//     演員
     Container(
      margin: EdgeInsets.only(top: 8.0),
      child: Row(
      children: <Widget>[
       Text('主演:'),
       Row(
       children: avatars,
       )
      ],
      ),
     )
     ],
    ),
    )
   )
  ],
  ),
 );
 return Card(
  child: row,
 );
 }

主要代碼就是上述這些... 效果圖, 源碼地址

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android學(xué)習(xí)之BottomSheetDialog組件的使用

    Android學(xué)習(xí)之BottomSheetDialog組件的使用

    BottomSheetDialog是底部操作控件,可在屏幕底部創(chuàng)建一個(gè)支持滑動(dòng)關(guān)閉視圖。本文將通過(guò)示例詳細(xì)講解它的使用,感興趣的小伙伴可以了解一下
    2022-06-06
  • Android編程實(shí)現(xiàn)canvas繪制餅狀統(tǒng)計(jì)圖功能示例【自動(dòng)適應(yīng)條目數(shù)量與大小】

    Android編程實(shí)現(xiàn)canvas繪制餅狀統(tǒng)計(jì)圖功能示例【自動(dòng)適應(yīng)條目數(shù)量與大小】

    這篇文章主要介紹了Android編程實(shí)現(xiàn)canvas繪制餅狀統(tǒng)計(jì)圖功能,可實(shí)現(xiàn)自動(dòng)適應(yīng)條目數(shù)量與大小的功能,涉及Android基于canvas的圖形繪制相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • Android開發(fā)之時(shí)間日期操作實(shí)例

    Android開發(fā)之時(shí)間日期操作實(shí)例

    這篇文章主要介紹了Android開發(fā)之時(shí)間日期操作,是Android程序開發(fā)中常見的一個(gè)功能,需要的朋友可以參考下
    2014-08-08
  • ExpandableListView實(shí)現(xiàn)手風(fēng)琴效果

    ExpandableListView實(shí)現(xiàn)手風(fēng)琴效果

    這篇文章主要為大家詳細(xì)介紹了ExpandableListView實(shí)現(xiàn)手風(fēng)琴效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Android實(shí)現(xiàn)分享長(zhǎng)圖并且添加全圖水印

    Android實(shí)現(xiàn)分享長(zhǎng)圖并且添加全圖水印

    這篇文章主要介紹了Android實(shí)現(xiàn)分享長(zhǎng)圖并且添加全圖水印的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Android ListView滾動(dòng)到指定的位置

    Android ListView滾動(dòng)到指定的位置

    這篇文章主要給大家介紹了Android中的ListView如何滾動(dòng)到指定的位置,文章給出了兩種解決的方法,并給出詳細(xì)的示例代碼,相信會(huì)對(duì)大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們下面來(lái)一起看看吧。
    2016-10-10
  • Android學(xué)習(xí)之Flux架構(gòu)入門

    Android學(xué)習(xí)之Flux架構(gòu)入門

    Flux是Facebook在14年提出的一種Web前端架構(gòu),主要用來(lái)處理復(fù)雜的UI邏輯的一致性問(wèn)題(當(dāng)時(shí)是為了解決Web頁(yè)面的消息通知問(wèn)題)。接下來(lái)從其特點(diǎn)和使用上來(lái)介紹Flux架構(gòu)。本文主要目的是讓你對(duì)Flux的一個(gè)架構(gòu)大體面貌有個(gè)了解。
    2016-08-08
  • Android Studio 3.1.3升級(jí)至3.6.1后舊項(xiàng)目的兼容操作方法

    Android Studio 3.1.3升級(jí)至3.6.1后舊項(xiàng)目的兼容操作方法

    這篇文章主要介紹了Android Studio 3.1.3升級(jí)至3.6.1后舊項(xiàng)目的兼容操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Android自定義單例AlertDialog詳解

    Android自定義單例AlertDialog詳解

    這篇文章主要為大家詳細(xì)介紹了Android自定義單例AlertDialog的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Android動(dòng)畫入門教程之kotlin

    Android動(dòng)畫入門教程之kotlin

    最近在學(xué)習(xí)kotlin,所以下面這篇文章主要給大家介紹了關(guān)于Android動(dòng)畫入門教程之kotlin的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12

最新評(píng)論

涡阳县| 弋阳县| 贵溪市| 遂平县| 昭觉县| 乐东| 淳化县| 晋宁县| 墨脱县| 清新县| 佛冈县| 青浦区| 乌恰县| 洞口县| 清苑县| 自治县| 无棣县| 英德市| 冀州市| 天全县| 汾阳市| 慈利县| 清水县| 新田县| 托克逊县| 荥阳市| 镇原县| 柘城县| 共和县| 凤城市| 确山县| 中江县| 朝阳区| 泰兴市| 获嘉县| 海南省| 军事| 洞头县| 苍溪县| 股票| 东乌珠穆沁旗|