app页面主要的widget构建和路由注册

app/modlues/home/ views

/// home/views 页面ui层
import 'package:get/get.dart';
import 'package:flutter/material.dart';

class BannerPage extends StatelessWidget {
  const BannerPage({super.key});


  @override
  Widget build(BuildContext context) {
    return GetBuilder(
      init: Get.find(),
      builder: (controller) => Scaffold(
        body: Container(
            alignment: Alignment.center,
            child: Flex(direction: Axis.horizontal, children: [
              for (var i = 0; i  controller.onItemTapped(i),
                  child: Text(controller.buttons[i]['name']),
                ),
              // controller.buildWidget()
            ])
            // Obx(() => Text(controller.title.value))
            ),
      ),
    );
  }
}

 app/modlues/home/controllers

import 'package:get/get.dart';

class HomeController extends GetxController {
    String str = ''.obs // 响应的字符串
    RxInt count = 0.bos // 响应的数字
    List data_list = [].obs // 响应数组(元组) 不确定好像是这么写的最好自己确认一下
    Map obj = {}.obs // 响应对象 
    data_list.add({ "name": 'w'}) // 数组添加数据
    data_list.where( item => item['name'] == 'w') // 类似es6中arr.filter()


    /// 页面层所需要的
    RxString title = 'hello'.tr.obs;
    List buttons = [
      {"name": "whrite".tr, "path": '/whrite'},
      {"name": "recordList".tr, 'path': '/record_list'},
      {"name": 'api'.tr, 'path': '/api', 'isRouter': true}
    ];

  // 点击按钮触发事件
  void onItemTapped(int i) async {
    // Get.toNamed(buttons[i]['path']);
    if (buttons[i]['isRouter'] == true) {
      // HomeNet.getHomePageContent();
      await getHomePageContent();
    } else {
      Get.toNamed(buttons[i]['path']);
    }
  }

   // 接口触发 !!这里有问题
  getHomePageContent() async {
    print('第一层');
    Response response = await HomeNet().getHomePageContent();
    print(response);
    update();
  }

  @override
  void onInit() {
    print('初始化');
  }

}

 app/modlues/home/binding

// 链接ui层和控制层
import 'package:get/get.dart';
import 'package:my_notice/app/modules/banner/controllers/banner_controller.dart';

class BannerBinding extends Bindings {
  @override
  void dependencies() {
    Get.lazyPut(() => BannerController());
  }
}

本站无任何商业行为
个人在线分享 » flutter文件分类模板之modules
E-->