当前位置: 首页 > news >正文

flutter:用getx实现controller和view分离

一,代码:

controller:

import 'package:get/get.dart';
import 'package:dio/dio.dart';
import 'dart:convert';
import 'dart:io';// 定义控制器
class DetailController extends GetxController {var title = "标题".obs;var author = "作者".obs;var content = "吟诗一首".obs;Future<void> getData() async {String url = "http://www.nihonnoma.net/detail.php";var res = await getHttp(url);print(res);if (res['status'] == 'success') {//setState(() {content.value = res['data']['content'];title.value = res['data']['title'];author.value = res['data']['author'];} else {print("报错:"+res['message']);}}Future<Map<String, dynamic>> getHttp(String url) async {Map<String,dynamic> res = {};try {final response = await Dio().get(url);print(response);if (response.statusCode == HttpStatus.ok) {var data= jsonDecode(response.toString());print(data);//setContent(data['data']['content'],data['data']['title'],data['data']['author']);res['data'] = data['data'];res['status'] = 'success';res['message'] = '';return res;} else {res['data'] = {};res['status'] = 'failed';res['message'] = 'response.statusCode:'+response.statusCode.toString();return res;}} catch (e) {print(e.toString());res['data'] = {};res['status'] = 'failed';res['message'] = 'exception:'+e.toString();return res;}}
}

view:

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'DetailController.dart';// 使用GetView
class DetailView extends GetView<DetailController> {DetailController controller = Get.put(DetailController());@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('GetView Example'),),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: [ElevatedButton(onPressed: () async {print("按钮被点击了:");controller.getData();},child: Text('获取远程数据',style: TextStyle(color: Colors.blue,),),),Obx(() => Text('标题: ${controller.title.value}')),Obx(() => Text('作者: ${controller.author.value}')),Obx(() => Text('${controller.content.value}', style: Theme.of(context).textTheme.headlineMedium,)),],),),);}
}

 

二,测试效果:

imageimage

 

http://www.jsqmd.com/news/431882/

相关文章:

  • PostgreSQL 入门学习教程,从入门到精通,PostgreSQL 16 插入、更新与删除数据 —语法详解与实战案例(8)
  • 盘点网安最好入手的10大岗位,最高月薪30K!
  • WRF模式:Linux编译排错、FNL/ERA5驱动场处理、长时序模拟配置、下垫面改造与物理参数调整、Python诊断分析可视化
  • 2026软瓷优质供应商推荐指南 适配多场景 - 优质品牌商家
  • VK3604A抗电源干扰可以通过CAP脚电容调节灵敏度4通道触摸触控IC
  • 联合省选 R6
  • AI大模型支持下的:Python双驱动计量经济学多源数据处理、机器学习预测及复杂因果识别全流程
  • 2026年北京小程序开发公司怎么选?全流程定制服务成企业数字化转型关键 - 品牌2026
  • break return continue的区别
  • 聊聊云贵川知名发电机组制造商,中高电气口碑好价格贵不贵? - 工业品牌热点
  • 2026年云南地区柴油发电机组加工厂性价比高的厂家推荐 - 工业推荐榜
  • 2026年好用的数据分析软件推荐:提升运营效率的实用工具 - 品牌排行榜
  • 2026无人机培训机构哪家好?行业实力机构推荐 - 品牌排行榜
  • 聊聊口碑好的定制电磁加热辊生产厂家,福建地区好用的有哪些? - myqiye
  • 2026年 库存管理软件厂家推荐排行榜:医药/可视化看板/多仓库协同/批次保质期/制造企业库存管理软件,智能高效解决方案精选 - 品牌企业推荐师(官方)
  • 回收沃尔玛购物卡,秒变现金秘籍! - 团团收购物卡回收
  • 杰理之tws主从切换出现断连【篇】
  • 2026年3月平移电动门厂家推荐,精准检测与稳定性能解析 - 品牌鉴赏师
  • 2026年汽车钣金喷漆厂家权威推荐榜:汽车钣金喷漆哪家好/汽车钣金喷漆多少钱/汽车钣金喷漆店推荐/选择指南 - 优质品牌商家
  • 2026年市面上口碑好的石墨坩埚成型液压机厂家推荐,四柱式石墨坩埚压机/框架式石墨坩埚液压机/伺服石墨坩埚成型机,石墨坩埚成型液压机品牌怎么选 - 品牌推广师
  • 杰理之测试发现延迟47ms比理论大很多【篇】
  • CHFS - 轻量级文件共享服务器部署
  • 基于Java springboot大学生家教服务管理系统家教服务预约学习评价家教招聘应聘(源码+文档+运行视频+讲解视频)
  • 教你正确回收沃尔玛购物卡,避免踩坑! - 团团收购物卡回收
  • AI优化找哪个公司?从SEO到GEO:浙江六大服务商重塑制造领域AI搜索优化新范式 - 品牌推荐大师1
  • 一文讲透|10个一键生成论文工具测评:本科生毕业论文+科研写作必备神器
  • 2026年免费的游戏数据分析平台实用指南 - 品牌排行榜
  • 基于Java springboot大学生家教兼职管理系统补习班预约(源码+文档+运行视频+讲解视频)
  • 2026年3月转塔冲床厂家推荐,精准检测与稳定性能深度解析 - 品牌鉴赏师
  • 2026最新环境损害司法鉴定推荐!西南地区优质机构权威榜单发布 - 十大品牌榜