首页 > 解决方案 > 在 Android Studio 中使用 Flutter 进行调试时如何“设置值...”

问题描述

问题

以下图片和代码是使用“New Flutter Project”创建 Flutter App 时的默认设置。

  import 'package:flutter/material.dart';

  void main() => runApp(new MyApp());

  class MyApp extends StatelessWidget {

    @override
    Widget build(BuildContext context) {
      return new MaterialApp(
        title: 'Flutter Demo',
        theme: new ThemeData(

          primarySwatch: Colors.blue,
        ),
        home: new MyHomePage(title: 'Flutter Demo Home Page'),
      );
    }
  }

  class MyHomePage extends StatefulWidget {
    MyHomePage({Key key, this.title}) : super(key: key);

    final String title;

    @override
    _MyHomePageState createState() => new _MyHomePageState();
  }

  class _MyHomePageState extends State<MyHomePage> {
    int _counter = 0;

    void _incrementCounter() {
      setState(() {

        _counter++; // <- I set a breakpoint

      });
    }

    @override
    Widget build(BuildContext context) {

      return new Scaffold(
        appBar: new AppBar(

          title: new Text(widget.title),
        ),
        body: new Center(

          child: new Column(

            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              new Text(
                'You have pushed the button this many times:',
              ),
              new Text(
                '$_counter',
                style: Theme.of(context).textTheme.display1,
              ),
            ],
          ),
        ),
        floatingActionButton: new FloatingActionButton(
          onPressed: _incrementCounter,
          tooltip: 'Increment',
          child: new Icon(Icons.add),
        ), // This trailing comma makes auto-formatting nicer for build methods.
      );
    }
  }

我试图通过在代码中放置一个断点来“设置值...”,当使用此代码进行调试时,_counter 会递增,但即使我将光标悬停也无法按下。

①“调试‘main.dart’(^D)”②断点③“设置值...”

问题

开发环境

最好的祝福,

标签: android-studiodebuggingdartflutter

解决方案


虽然执行在断点处停止,setState但没有任何效果。 setState不会直接导致重新渲染,它只是将小部件标记为重新渲染所需。

下次同步信号来自显示器时,Flutter 会重建视图的陈旧部分。


推荐阅读