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(),
          ),
        );
      },
    );
  }
}
相关推荐
五月君_4 分钟前
Nuxt UI v4.3 发布:原生 AI 富文本编辑器来了,Vue 生态又添一员猛将!
前端·javascript·vue.js·人工智能·ui
!执行15 分钟前
遇到 Git 提示大文件无法上传确实让人头疼
前端·github
一个处女座的程序猿O(∩_∩)O20 分钟前
现代前端开发的三大支柱:TypeScript、ESLint、Prettier 深度解析与完美协作
javascript·typescript
xiangxiongfly91537 分钟前
JavaScript 惰性函数
javascript·惰性函数
坚持学习前端日记40 分钟前
个人网站从零到盈利的成长策略
前端·程序人生
POLITE31 小时前
Leetcode 76.最小覆盖子串 JavaScript (Day 6)
javascript·算法·leetcode
CamilleZJ1 小时前
eslint+prettier
前端·eslint·工程化·prettier
web小白成长日记1 小时前
深入理解 React 中的 Props:组件通信的桥梁
前端·javascript·react.js
2501_946675641 小时前
Flutter与OpenHarmony打卡步进器组件
java·javascript·flutter
tjswk20081 小时前
在ios上动态插入元素的列表使用:last-child样式可能不能及时生效
前端