Flutter:页面中触发点击事件,通过id更新特定视图

当页面触发某些事件后,我不想整个视图都更新,而是通过id去更新特定的一块内容

controller

js 复制代码
class StartController extends GetxController {
  StartController();
  String title = "";
  void onTap(int ticket) {
    title = "GetBuilder -> 点击了第 $ticket 个按钮";
    update(['splash_title']);
  }
}

view

js 复制代码
import 'package:flutter/material.dart';
import 'package:get/get.dart';

import 'index.dart';

class StartPage extends GetView<StartController> {
  const StartPage({super.key});

  // 主视图
  Widget _buildView() {
    return Column(
      mainAxisAlignment: MainAxisAlignment.spaceEvenly,
      children: [
        // 文字标题
        GetBuilder<StartController>(
          id: "splash_title",
          builder: (_) {
            return Center(
              child: Text(controller.title),
            );
          },
        ),

        // 按钮
        ElevatedButton(
          onPressed: () {
            controller.onTap(DateTime.now().microsecondsSinceEpoch);
          },
          child: const Text("立刻点击"),
        ),
      ],
    );
  }

  @override
  Widget build(BuildContext context) {
    return GetBuilder<StartController>(
      init: StartController(),
      id: "start",
      builder: (_) {
        return Scaffold(
          appBar: AppBar(title: const Text("start")),
          body: SafeArea(
            child: _buildView(),
          ),
        );
      },
    );
  }
}
相关推荐
一条上岸小咸鱼5 分钟前
Kotlin 基本数据类型(五):Array
android·前端·kotlin
森之鸟5 分钟前
flutter项目适配鸿蒙
flutter·华为·harmonyos
zzywxc7877 分钟前
详细探讨AI在金融、医疗、教育和制造业四大领域的具体落地案例,并通过代码、流程图、Prompt示例和图表等方式展示这些应用的实际效果。
开发语言·javascript·人工智能·深度学习·金融·prompt·流程图
大明888 分钟前
用 mouseover/mouseout 事件代理模拟 mouseenter/mouseleave
前端·javascript
小杨梅君9 分钟前
vue3+vite中使用自定义element-plus主题配置
前端·element
一个专注api接口开发的小白14 分钟前
Python + 淘宝 API 开发:自动化采集商品数据的完整流程
前端·数据挖掘·api
林太白14 分钟前
Nuxt.js搭建一个官网如何简单
前端·javascript·后端
晴空雨15 分钟前
一个符号让 indexOf 判断更优雅!JavaScript 位运算的隐藏技巧
前端·javascript
摸着石头过河的石头15 分钟前
前端调试全攻略:从PC到移动端的一站式实战指南
前端·debug
小猪猪屁17 分钟前
🚀 用 Nuxt3 打造公司官网:一场从 0 到 1 的实战冒险
前端