【问题标题】:How to "Set Value..." when debugging with Flutter in Android Studio在 Android Studio 中使用 Flutter 进行调试时如何“设置值...”
【发布时间】:2019-01-31 16:06:42
【问题描述】:

问题

以下图片和代码是使用“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 Studio 中使用 Flutter 进行调试时如何“设置值...”。

开发环境

  • Android Studio 3.1.4
  • 颤振 0.5.1
  • 飞镖 2
  • 为 x86 构建的 Android SDK

最好的问候,

【问题讨论】:

  • 你解决了吗?
  • 我无法解决这个问题。

标签: android-studio debugging dart flutter


【解决方案1】:

当执行在断点处停止时,setState 不起作用。 setState 不会直接导致重新渲染,它只是将小部件标记为需要重新渲染。

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

【讨论】:

  • 这种情况下应该在哪里下断点,哪个变量可以是“Set Value ...”?
  • 你可以调用setValue,你更新什么变量并不重要,但是你需要继续执行才能看到setValue的效果
  • 我无法按下“设置值...”按钮。
  • @GünterZöchbauer 有什么方法可以在调试器中编写array [0]array[1] 或任何运行时分配?
  • 这不是对“如何...?”的回答。我们仍然无法在运行时更改变量。问题中描述的情况是具体的。我想在渲染前更改blocrepository 中的var,甚至是小部件中的var,但我不能。
猜你喜欢
  • 2018-08-11
  • 1970-01-01
  • 1970-01-01
  • 2015-03-19
  • 1970-01-01
  • 2016-02-17
  • 1970-01-01
  • 2019-10-12
  • 1970-01-01
相关资源
最近更新 更多