Flutter 颤振:提供程序值未更新

Flutter 颤振:提供程序值未更新,flutter,dart,state-management,Flutter,Dart,State Management,我是新来的颤振/省道,并试图得到一个值更新加载酒吧,我想使。该值正在我创建的提供者小部件中更新,但当我尝试使用它时,我无法找出缺少的内容。如蒙协助,将不胜感激 class LoadingProvider extends ChangeNotifier{ int _downloadPercentage = 0; int get downloadPercentage => _downloadPercentage; void getPercentage(int input) {

我是新来的颤振/省道,并试图得到一个值更新加载酒吧,我想使。该值正在我创建的提供者小部件中更新,但当我尝试使用它时,我无法找出缺少的内容。如蒙协助,将不胜感激

class LoadingProvider extends ChangeNotifier{
  int _downloadPercentage = 0;
  int get downloadPercentage => _downloadPercentage;

  void getPercentage(int input) {
    _downloadPercentage = input;
    notifyListeners();
    print(downloadPercentage);
  }

}
这是我想展示的页面

class ContourScreen extends StatefulWidget {
  final Note note;
  ContourScreen(this.note);

  @override
  State<StatefulWidget> createState() => new _ContourScreenState();
}

class _ContourScreenState extends State<ContourScreen> with TickerProviderStateMixin{
  @override
  void initState() {
    super.initState();
  }

  @override
  dispose() {
    super.dispose();
  }


  @override
  Widget build(BuildContext context) {
  
   final loadingProvider = Provider.of<LoadingProvider>(context);
    return  Scaffold(
      backgroundColor: Colors.white,
      appBar: AppBar(),
        
      body: Scrollbar(
        child: SingleChildScrollView(
          child: Container(

            child: Padding(
              padding: const EdgeInsets.only(left: 20.0, right: 20.0),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                 
                  ChangeNotifierProvider<ValueNotifier<int>>(
                      create: (context) => ValueNotifier<int>(0),
                  child: Text('${loadingProvider.downloadPercentage}'),),
              

                ],
              ),
            ),
          ),
        ),
      ),
    );
  }
}
class ContourScreen扩展StatefulWidget{
最后说明;
轮廓屏幕(本注释);
@凌驾
State createState()=>new _ContourScreenState();
}
类_ContourScreenState使用TickerProviderStateMixin扩展状态{
@凌驾
void initState(){
super.initState();
}
@凌驾
处置{
super.dispose();
}
@凌驾
小部件构建(构建上下文){
final loadingProvider=Provider.of(上下文);
返回脚手架(
背景颜色:Colors.white,
appBar:appBar(),
正文:滚动条(
子:SingleChildScrollView(
子:容器(
孩子:填充(
填充:仅限常量边集(左:20.0,右:20.0),
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
变更通知提供者(
创建:(上下文)=>ValueNotifier(0),
子项:文本(“${loadingProvider.downloadPercentage}”),
],
),
),
),
),
),
);
}
}

这是所有页面的git hub供参考

如何使用
ContourScreen
?它是否用作
ChangeNotifierProvider
的后代?是否确实正确更新了值,即真正调用了
getPercentage
?您的github回购协议不包含这些详细信息。如果我不完全理解您的评论,请原谅。使用getPercentage的唯一位置是gif_image_小部件的第249行。我还将为我的ContourScreen添加包含页面到github