相关疑难解决方法(0)

如何从Flutter中的其他StatefulWidget设置/更新StatefulWidget的状态?

  1. 例如,下面的代码加按钮工作,能够更新文本,但减号按钮不能.
  2. 但是如果我们按下FloatingActionButton,那么状态就会刷新.
  3. 减号按钮正在更改变量的值,但不会更新父窗口小部件的状态.

在此输入图像描述

这是代码.....

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'),
    );
  }
}

int number;

EdgeInsets globalMargin = const EdgeInsets.symmetric(horizontal: 20.0, vertical: 20.0);
TextStyle textStyle = const TextStyle(
  fontSize: 100.0,
  color: Colors.black,
);

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

  final String title;

  @override
  _MyHomePageState createState() …
Run Code Online (Sandbox Code Playgroud)

state flutter

22
推荐指数
7
解决办法
3万
查看次数

如何访问 showModalBottomSheet 中的提供 (Provider.of()) 值?

我在一个小部件树中有一个 FloatingActionButton ,它有一个BlocProviderfrom flutter_bloc。像这样的东西:

BlocProvider(
  builder: (context) {
    SomeBloc someBloc = SomeBloc();
    someBloc.dispatch(SomeEvent());

    return someBloc;
  },
  child: Scaffold(
    body: ...
    floatingActionButton: FloatingActionButton(
      onPressed: _openFilterSchedule,
      child: Icon(Icons.filter_list),
    ),
  )
);
Run Code Online (Sandbox Code Playgroud)

这将打开一个模态底部工作表:

void _openFilterSchedule() {
    showModalBottomSheet<void>(
      context: context,
      builder: (BuildContext context) {
        return TheBottomSheet();
      },
    );
  }
Run Code Online (Sandbox Code Playgroud)

我正在尝试SomeBloc使用BlocProvider.of<SomeBloc>(context)inside访问,TheBottomSheet但出现以下错误:

BlocProvider.of() called with a context that does not contain a Bloc of type SomeBloc.
Run Code Online (Sandbox Code Playgroud)

我曾尝试使用/sf/answers/3957352801/ 中描述的解决方案,但仅适用于BottomSheet而不适用于ModalBottomSheet


注意:这不限于BlocProvider或 …

flutter bloc flutter-provider

17
推荐指数
3
解决办法
5479
查看次数

Flutter Switch - onChanged 不变

使用以下Switch小部件时,该isOn值始终返回true且永不更改。

Switch只在刷卡移动位置太,自来水不会动它。如何解决?

bool isInstructionView = false;

Switch(
    value: isInstructionView,
    onChanged: (bool isOn) {
      setState(() {
        isInstructionView = isOn;
        print(isInstructionView);
      });
    },
    activeColor: Colors.blue,
    inactiveTrackColor: Colors.grey,
    inactiveThumbColor: Colors.grey,
)
Run Code Online (Sandbox Code Playgroud)

更新:为了更加清晰,onChanged始终返回isOntrue. 为什么会这样?

switch-statement dart flutter

8
推荐指数
3
解决办法
1万
查看次数

标签 统计

flutter ×3

bloc ×1

dart ×1

flutter-provider ×1

state ×1

switch-statement ×1