You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加TextField导致Flutter的Unit类失效、程序冻结,求助原因

问题:添加TextField组件导致自定义Unit类失效、程序冻结

我遇到一个问题:给自定义的Unit组件添加TextField后,这个组件直接失效,程序还会冻结;但把TextField移除,Unit类就能正常运行。我已经尝试过把这个类放在代码的不同位置排查周边代码的影响,也搜索了谷歌相关问题、查阅了Flutter官方文档,还是找不到问题根源,恳请帮忙找出原因。

相关代码

import 'package:flutter/material.dart';

class Unit extends StatefulWidget {
  const Unit({super.key, required this.unitID});

  final String unitID;

  @override
  State<Unit> createState() => _UnitState();
}

class _UnitState extends State<Unit> {
  bool _active = false;

  // ignore: unused_element
  void _handleUpdate() {
    setState(() {
      _active = !_active;
    });
  }

  @override
  Widget build(BuildContext context) {
    double unitWidth = MediaQuery.of(context).size.width;
    double unitHeight = MediaQuery.of(context).size.height;

    final String unitID = widget.unitID;

    return Container(
      height: unitHeight * 0.2,
      width: unitWidth * 0.7,
      decoration: BoxDecoration(
          shape: BoxShape.rectangle,
          borderRadius: BorderRadius.circular(8),
          border: Border.all(color: const Color.fromARGB(255, 72, 72, 72)),
          color: const Color.fromARGB(255, 110, 110, 110)),
      padding: const EdgeInsets.all(10),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: [
          const Text('Unit name'),
          // ignore: unnecessary_string_interpolations
          Text('$unitID'),
          const TextField(
            decoration: InputDecoration(
                border: OutlineInputBorder(), labelText: 'Name'),
          ),
        ],
      ),
    );
  }
}

相关运行状态说明

  • 代码包含TextField时:组件失效,程序冻结
  • 代码移除TextField后:Unit组件可正常运行

内容的提问来源于stack exchange,提问作者Seb S.G.H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 02:23:18