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

Flutter中ListView 的使用示例

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

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

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

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

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

功能實現(xiàn)

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

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

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

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

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,
     ),
//     豆瓣評分
     Text(
      '豆瓣評分:${subject['rating']['average']}',
      style: TextStyle(
       fontSize: 16.0
      ),
     ),
//     類型
     Text(
      "類型:${subject['genres'].join("、")}"
     ),
//     導演
     Text(
      '導演:${subject['directors'][0]['name']}'
     ),
//     演員
     Container(
      margin: EdgeInsets.only(top: 8.0),
      child: Row(
      children: <Widget>[
       Text('主演:'),
       Row(
       children: avatars,
       )
      ],
      ),
     )
     ],
    ),
    )
   )
  ],
  ),
 );
 return Card(
  child: row,
 );
 }

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android學習之BottomSheetDialog組件的使用

    Android學習之BottomSheetDialog組件的使用

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

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

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

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

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

    ExpandableListView實現(xiàn)手風琴效果

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

    Android實現(xiàn)分享長圖并且添加全圖水印

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

    Android ListView滾動到指定的位置

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

    Android學習之Flux架構(gòu)入門

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

    Android Studio 3.1.3升級至3.6.1后舊項目的兼容操作方法

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

    Android自定義單例AlertDialog詳解

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

    Android動畫入門教程之kotlin

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

最新評論

勃利县| 武山县| 凉山| 葫芦岛市| 平塘县| 新宾| 南城县| 山阴县| 集贤县| 阆中市| 高淳县| 中牟县| 甘泉县| 西充县| 黑水县| 乌鲁木齐市| 垣曲县| 沂南县| 三原县| 晋中市| 庆城县| 裕民县| 离岛区| 沅陵县| 孟州市| 来凤县| 保康县| 阳新县| 鲁山县| 浦江县| 苏尼特右旗| 长武县| 临安市| 伊宁县| 平昌县| 定襄县| 醴陵市| 隆德县| 蓬溪县| 龙南县| 科技|