| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import 'dart:typed_data';
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- import 'package:trackoffical_app/service/image.dart';
- import 'image_loading.dart';
- import '../model/m_net_image.dart';
- class AppNetImage extends StatelessWidget{
- final MNetImage netImage;
- final memory = Uint8List(0).obs;
- final progress = 0.0.obs;
- final BoxFit? fit;
- final VoidCallback? onWidgetOk;
- AppNetImage({
- super.key,
- required this.netImage,
- this.fit,
- this.onWidgetOk
- }){
- netImage.loadMemory(
- onReceiveProgress: (c, a){
- if(a > 0){
- progress.value = c.toDouble() / a;
- }
- }
- ).then((value) {
- if(value.isNotEmpty){
- memory.value = value;
- }
- });
- }
- @override
- Widget build(BuildContext context) {
- return Obx((){
- if (memory.value.isEmpty){
- return ImageLoading(value: progress.value);
- }else{
- return _Image(memory.value, fit, onWidgetOk);
- // return Image.memory(memory.value, fit: fit);
- }
- });
- }
- }
- class _Image extends StatelessWidget{
- const _Image(this.memory, this.fit, this.onWidgetOk);
- final BoxFit? fit;
- final VoidCallback? onWidgetOk;
- final Uint8List memory;
- @override
- Widget build(BuildContext context) {
- final onWidgetOk = this.onWidgetOk;
- if(onWidgetOk!= null){
- WidgetsBinding.instance.addPostFrameCallback((mag) {
- onWidgetOk();
- });
- }
- onWidgetOk?.call();
- return Image.memory(memory, fit: fit);
- }
- }
|