這是乙個普通的展示資料,上拉載入更多資料的列表。
其中有乙個型別為list
的資料列表listdata,有個page資料用於分頁,isloading用來判斷是否正在載入資料,scrollcontroller用於列表控制器
如果存在大量這種頁面則可以用mixin來處理,不免大量重複的**
import 'package:flutter/material.dart';
import 'package:dio/dio.dart';
import 'dart:convert';
/// 列表頁面
class recommendview extends statefulwidget
class _recommendviewstate
extends listmoredatabasewith listmoredatamixin),
);listviewjson _json = listviewjson.fromjson(json.decode(data));
return _json.data;
} @override
void initstate()
@override
void dispose()
@override
widget build(buildcontext context)
}
import 'package:flutter/material.dart';
abstract class listmoredatabaseextends state
/// 在
mixin listmoredatamixinon listmoredatabase
@override
void dispose()
/// 資料列表
listlistdata = ;
/// 分頁
int page = 1;
/// 是否在載入資料
bool isloading = false;
/// 滾動條控制器
scrollcontroller scrollcontroller = scrollcontroller();
/// 初始化資料
futureinitdata() async );
listdata = await getdata();
if (!mounted) return;
setstate(() );
} /// 上拉載入更多
futureloadmore() async );
listdata = await getdata();
if (data.isempty)
setstate(() );
} bool canloadmore(scrollnotification scroll)
bool onnotification(scrollnotification scroll)
return true;
}}
注: flutter之mixin用法解析
mixins的中文意思是混入,就是在類中混入其他功能。dart中的定義是 mixins are a way of reusing a class s code in multiple class hierarchies.複製 mixins是一種在多個類層次結構中復用類 的方法。mixins是要通過非...
Ruby中的Mixin (混入)
在ruby中,我們可以把乙個模組混入 mixin 到物件中,從而達到類似多重繼承的效果。下面舉幾個例子來仔細闡述一下這個問題 首先定義乙個module module foo def bar puts foo endend 然後我們把這個模組混入到物件中去 class demo include foo...
Vue中Mixin的用法
混入 mixin 提供了一種非常靈活的方式,來分發 vue 元件中的可復用功能。乙個混入物件可以包含任意元件選項。當元件使用混入物件時,所有混入物件的選項將被 混合 進入該元件本身的選項。定義乙個混入物件 var mymixin methods 定義乙個使用混入物件的元件 var component...