Следующее утверждение было выброшено во время выполнения Layout():

Я новичок в флаттере, и я следую этому курсу Удеми, но я сталкиваюсь с этой ошибкой, когда запускаю приложение на эмуляторе Android на компьютере с Windows, он показывает кнопку на весь экран

приложение простое, я просто пытаюсь получить данные от пользователя, чтобы сохранить их в файле s, а затем распечатать в консоли

Мой результат

Ожидаемый результат

Следующее утверждение было выброшено во время выполнения Layout():

Мой код: -

основной дротик

import 'dart:async';
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';


void main() async{

  var data = await readData();
  if (data != null){
    print(data);
  }

  runApp(
      MaterialApp(
        title: "IO",
        home: Home(),
      )
  );
}

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {

  var _enterDataField = TextEditingController();
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Read/Write"),
        centerTitle: true,
        backgroundColor: Colors.greenAccent,
      ),
      body: new Container(
        padding: EdgeInsets.all(13.4),
        alignment: Alignment.topCenter,
        child: ListTile(
          title: TextField(
            controller: _enterDataField,
            decoration: InputDecoration(
                labelText: "Input Something"
            ),
          ),
          subtitle: FlatButton(
            color: Colors.redAccent,
            onPressed: (){
              print("Flat button");
              writeData(_enterDataField.text);
            },
            child: new Column(
              children: <Widget>[
                Text("Save Data"),
                Padding(padding: EdgeInsets.all(14.5)),
                Text("Save data goes all"),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

Future<String> get _localPath async {
  final directory = await getApplicationDocumentsDirectory();
  return directory.path; // /home/directory/
}

Future<File> get _localFile async {
  final path = await _localPath;
  return File("$path/data.txt"); // /home/directory/data.txt
}

Future<File> writeData(String message) async {
  final file = await _localFile;
  return file.writeAsString("$message");
}

Future<String> readData() async{
  try{
    final file = await _localFile;
    String data = await file.readAsString();
    return data;
  }catch(e){
    return "Nothing has been saved yet!";
  }
}

pubspec.yaml

version: 1.0.0+1

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2
  path_provider: ^1.1.0

Ошибка во время запуска:

Launching lib\main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
Gradle task 'assembleDebug'...
Built build\app\outputs\apk\debug\app-debug.apk.
I/flutter ( 4904): Nothing has been saved yet!
I/Choreographer( 4904): Skipped 105 frames!  The application may be doing too much work on its main thread.
Syncing files to device Android SDK built for x86...
D/EGL_emulation( 4904): eglMakeCurrent: 0xe7085900: ver 3 1 (tinfo 0xe70839b0)
I/flutter ( 4904): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter ( 4904): The following assertion was thrown during performLayout():
I/flutter ( 4904): not implemented
I/flutter ( 4904): 'package:flutter/src/material/input_decorator.dart': Failed assertion: line 977 pos 12: 'false'
I/flutter ( 4904): 
I/flutter ( 4904): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter ( 4904): more information in this error message to help you determine and fix the underlying cause.
I/flutter ( 4904): In either case, please report this assertion by filing a bug on GitHub:
I/flutter ( 4904):   https://github.com/flutter/flutter/issues/new?template=BUG.md
I/flutter ( 4904): 
I/flutter ( 4904): When the exception was thrown, this was the stack:
I/flutter ( 4904): #2      _RenderDecoration.computeDistanceToActualBaseline (package:flutter/src/material/input_decorator.dart:977:12)
I/flutter ( 4904): #3      RenderBox.getDistanceToActualBaseline.<anonymous closure> (package:flutter/src/rendering/box.dart:1672:50)
I/flutter ( 4904): #4      __InternalLinkedHashMap&_HashVMBase&MapMixin&_LinkedHashMapMixin.putIfAbsent (dart:collection/runtime/libcompact_hash.dart:281:23)
I/flutter ( 4904): #5      RenderBox.getDistanceToActualBaseline (package:flutter/src/rendering/box.dart:1672:22)
I/flutter ( 4904): #6      _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.computeDistanceToActualBaseline (package:flutter/src/rendering/proxy_box.dart:97:20)
I/flutter ( 4904): #7      RenderBox.getDistanceToActualBaseline.<anonymous closure> (package:flutter/src/rendering/box.dart:1672:50)
I/flutter ( 4904): #8      __InternalLinkedHashMap&_HashVMBase&MapMixin&_LinkedHashMapMixin.putIfAbsent (dart:collection/runtime/libcompact_hash.dart:281:23)
I/flutter ( 4904): #9      RenderBox.getDistanceToActualBaseline (package:flutter/src/rendering/box.dart:1672:22)
I/flutter ( 4904): #10     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.computeDistanceToActualBaseline (package:flutter/src/rendering/proxy_box.dart:97:20)
I/flutter ( 4904): #11     RenderBox.getDistanceToActualBaseline.<anonymous closure> (package:flutter/src/rendering/box.dart:1672:50)
I/flutter ( 4904): #12     __InternalLinkedHashMap&_HashVMBase&MapMixin&_LinkedHashMapMixin.putIfAbsent (dart:collection/runtime/libcompact_hash.dart:281:23)
I/flutter ( 4904): #13     RenderBox.getDistanceToActualBaseline (package:flutter/src/rendering/box.dart:1672:22)
I/flutter ( 4904): #14     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.computeDistanceToActualBaseline (package:flutter/src/rendering/proxy_box.dart:97:20)
I/flutter ( 4904): #15     RenderBox.getDistanceToActualBaseline.<anonymous closure> (package:flutter/src/rendering/box.dart:1672:50)
I/flutter ( 4904): #16     __InternalLinkedHashMap&_HashVMBase&MapMixin&_LinkedHashMapMixin.putIfAbsent (dart:collection/runtime/libcompact_hash.dart:281:23)
I/flutter ( 4904): #17     RenderBox.getDistanceToActualBaseline (package:flutter/src/rendering/box.dart:1672:22)
I/flutter ( 4904): #18     RenderBox.getDistanceToBaseline (package:flutter/src/rendering/box.dart:1655:27)
I/flutter ( 4904): #19     _RenderListTile._boxBaseline (package:flutter/src/material/list_tile.dart:886:16)
I/flutter ( 4904): #20     _RenderListTile.performLayout (package:flutter/src/material/list_tile.dart:945:32)
I/flutter ( 4904): #21     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #22     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:199:11)
I/flutter ( 4904): #23     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #24     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #25     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #26     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #27     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #28     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #29     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #30     RenderPositionedBox.performLayout (package:flutter/src/rendering/shifted_box.dart:385:13)
I/flutter ( 4904): #31     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #32     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:199:11)
I/flutter ( 4904): #33     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #34     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:142:11)
I/flutter ( 4904): #35     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:339:7)
I/flutter ( 4904): #36     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:212:7)
I/flutter ( 4904): #37     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:356:14)
I/flutter ( 4904): #38     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #39     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #40     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #41     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #42     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1203:11)
I/flutter ( 4904): #43     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #44     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #45     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #46     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #47     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #48     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #49     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #50     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #51     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #52     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #53     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #54     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #55     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #56     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #57     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #58     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #59     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:2900:13)
I/flutter ( 4904): #60     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #61     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:510:15)
I/flutter ( 4904): #62     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #63     __RenderTheatre&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #64     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #65     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #66     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #67     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #68     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #69     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #70     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #71     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #72     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #73     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter ( 4904): #74     RenderObject.layout (package:flutter/src/rendering/object.dart:1634:7)
I/flutter ( 4904): #75     RenderView.performLayout (package:flutter/src/rendering/view.dart:147:13)
I/flutter ( 4904): #76     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1509:7)
I/flutter ( 4904): #77     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:768:18)
I/flutter ( 4904): #78     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:281:19)
I/flutter ( 4904): #79     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:686:13)
I/flutter ( 4904): #80     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:219:5)
I/flutter ( 4904): #81     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
I/flutter ( 4904): #82     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
I/flutter ( 4904): #83     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:751:7)
I/flutter ( 4904): #85     _Timer._runTimers (dart:isolate/runtime/libtimer_impl.dart:382:19)
I/flutter ( 4904): #86     _Timer._handleMessage (dart:isolate/runtime/libtimer_impl.dart:416:5)
I/flutter ( 4904): #87     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
I/flutter ( 4904): (elided 3 frames from class _AssertionError and package dart:async)
I/flutter ( 4904): 
I/flutter ( 4904): The following RenderObject was being processed when the exception was fired:
I/flutter ( 4904):   _RenderListTile#c955b relayoutBoundary=up7 NEEDS-LAYOUT NEEDS-PAINT
I/flutter ( 4904):   creator: _ListTile ← MediaQuery ← Padding ← SafeArea ← Semantics ← Listener ← _GestureSemantics ←
I/flutter ( 4904):   RawGestureDetector ← GestureDetector ← InkWell ← ListTile ← Align ← ⋯
I/flutter ( 4904):   parentData: offset=Offset(0.0, 0.0) (can use size)
I/flutter ( 4904):   constraints: BoxConstraints(0.0<=w<=352.6, 0.0<=h<=668.1)
I/flutter ( 4904):   size: MISSING
I/flutter ( 4904): This RenderObject had the following descendants (showing up to depth 5):
I/flutter ( 4904):   RenderSemanticsAnnotations#30cbc relayoutBoundary=up8 NEEDS-PAINT
I/flutter ( 4904):     RenderIgnorePointer#d2ac5 relayoutBoundary=up9 NEEDS-PAINT
I/flutter ( 4904):       RenderPointerListener#95c88 relayoutBoundary=up10 NEEDS-PAINT
I/flutter ( 4904):         _RenderDecoration#d39f5 relayoutBoundary=up11 NEEDS-PAINT
I/flutter ( 4904):           RenderRepaintBoundary#7e8a4 relayoutBoundary=up12 NEEDS-PAINT
I/flutter ( 4904):           RenderTransform#6a1d0 relayoutBoundary=up12 NEEDS-PAINT
I/flutter ( 4904):           RenderConstrainedBox#bd9be relayoutBoundary=up12 NEEDS-PAINT
I/flutter ( 4904):           RenderCustomPaint#862dd NEEDS-PAINT
I/flutter ( 4904):   RenderSemanticsAnnotations#103e3 relayoutBoundary=up8 NEEDS-PAINT
I/flutter ( 4904):     _RenderInputPadding#ab3b4 relayoutBoundary=up9 NEEDS-PAINT
I/flutter ( 4904):       RenderConstrainedBox#39a4f relayoutBoundary=up10 NEEDS-PAINT
I/flutter ( 4904):         RenderPhysicalShape#32f8b relayoutBoundary=up11 NEEDS-PAINT
I/flutter ( 4904):           RenderCustomPaint#5950d relayoutBoundary=up12 NEEDS-PAINT
I/flutter ( 4904): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter ( 4904): Another exception was thrown: RenderBox was not laid out: _RenderListTile#c955b relayoutBoundary=up7 NEEDS-PAINT
I/flutter ( 4904): Another exception was thrown: RenderBox was not laid out: RenderPadding#a1895 relayoutBoundary=up6 NEEDS-PAINT
I/flutter ( 4904): Another exception was thrown: RenderBox was not laid out: RenderSemanticsAnnotations#9585a relayoutBoundary=up5 NEEDS-PAINT
I/flutter ( 4904): Another exception was thrown: RenderBox was not laid out: RenderPointerListener#867ef relayoutBoundary=up4 NEEDS-PAINT
I/flutter ( 4904): Another exception was thrown: 'package:flutter/src/rendering/shifted_box.dart': Failed assertion: line 314 pos 12: 'child.hasSize': is not true.
D/        ( 4904): HostConnection::get() New Host Connection established 0xce8870c0, tid 4923
D/EGL_emulation( 4904): eglMakeCurrent: 0xe569c960: ver 3 1 (tinfo 0xe447f500)

Не могли бы вы принять ответ сейчас?

CopsOnRoad 01.06.2019 04:43
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
4 808
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Использовать этот.

Widget _myWidget() {
  return Padding(
    padding: const EdgeInsets.all(24.0),
    child: Column(
      mainAxisSize: MainAxisSize.min,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
        TextField(decoration: InputDecoration(hintText: "Write Something")),
        Container(
          color: Colors.red,
          width: 200,
          height: 100,
          child: Column(children: <Widget>[
            Text("Save Data"),
            Spacer(),
            Text("Save Data goes here"),
          ],),
        ),
      ],
    ),
  );
}

Мне пришлось отредактировать код, чтобы он был таким, чтобы работать

FlatButton(
              color: Colors.redAccent,
              onPressed: (){
                print("Flat button ${_enterDataField.text}");
                writeData(_enterDataField.text.toString());
              },
              child: new Column(
                children: <Widget>[
                  Text("Save Data"),
                  Padding(padding: EdgeInsets.all(14.5)),
                  FutureBuilder(
                    future: readData(),
                    builder: (BuildContext context, AsyncSnapshot<String> data){
                      if (data.hasData != null){
                        return Text(
                          data.data.toString(),
                          style: TextStyle(
                            color: Colors.white70,
                          ),
                        );
                      }else{
                        return Text("No data has been saved");
                      }
                    },
                  ),
                ],
              ),
            )

Другие вопросы по теме