it-swarm.dev

카드 위젯의 플러터에서 '렌더 박스가 배치되지 않았습니다 :'를 해결하는 방법

컨테이너가 세 개인 카드가 있습니다. 처음 두 개에는 텍스트가 있고 마지막 두 개에는 일부 텍스트와 함께 TextFormField가 있어야합니다. 그래서 나는 둘을 서로 붙잡고 줄을 가지고 있습니다. TextFormField 위젯을 추가 할 때만 나타나지 않으며 콘솔에 오류가 표시됩니다.

══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY 
╞═════════════════════════════════════════════════════════
I/flutter (14101): The following assertion was thrown during 
performLayout():
I/flutter (14101): BoxConstraints forces an infinite width.
I/flutter (14101): These invalid constraints were provided to 
RenderRepaintBoundary's layout() function by the
I/flutter (14101): following function, which probably computed the invalid 
constraints in question:
I/flutter (14101):   _RenderDecoration._layout.layoutLineBox 
(package:flutter/src/material/input_decorator.Dart:750:11)
I/flutter (14101): The offending constraints were:
I/flutter (14101):   BoxConstraints(w=Infinity, 0.0<=h<=100.0)



I/flutter (14101): Another exception was thrown: RenderBox was not laid out: 
RenderPadding#150b0 relayoutBoundary=up3 NEEDS-Paint
I/flutter (14101): Another exception was thrown: 
'package:flutter/src/rendering/shifted_box.Dart': Failed assertion: line 310 
pos 12: 'child.hasSize': is not true.
I/flutter (14101): Another exception was thrown: RenderBox was not laid out: 
RenderPhysicalShape#1d998 relayoutBoundary=up4

코드는 다음과 같습니다

import 'package:flutter/material.Dart';

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

class _HomeState extends State<Home> {
@override
Widget build(BuildContext context) {
return Container(
    child: Center(
  child: Card(
    elevation: 2.0,
    child: Column(
      mainAxisSize: MainAxisSize.min,
      children: <Widget>[
        Container(
          height: 100.0,
          color: Colors.purple,
        ),
        Container(
          height: 200.0,
          color: Colors.pink,
          child: Column(
            children: <Widget>[
              new RichText(
                textAlign: TextAlign.center,
                text: TextSpan(
                  text: 'Some Text',
                  style: TextStyle(
                      color: Colors.grey[800],
                      fontWeight: FontWeight.bold,
                      fontSize: 17.0),
                ),
              ),
              new RichText(
                softWrap: true,
                textAlign: TextAlign.center,
                text: TextSpan(
                  text:
                      'Some other text',
                  style: TextStyle(
                      color: Colors.black54,
                      fontWeight: FontWeight.normal,
                      fontSize: 17.0),
                  ),
                    ),
                  Row(
                children: <Widget>[
                  Text('adfa'),
                  Text('data'),
                  Form(
                    child: TextFormField(),
                  ),
                ],
              )
            ],
          ),
        ),
      ],
    ),
  ),
));
}
 }
7
Taio

TextFormField가 문제를 일으 킵니다. 너비에 대한 제약이 필요합니다. 예 : 너비가있는 확장 위젯 또는 컨테이너로 랩핑하십시오.

11
German Saprykin

German Saprykin post의 향상에 응답하고 있으며 아래 오류도 동일하게 발생했습니다.

======== (2) 라이브러리 렌더링에 의해 포착되는 예외 =========================== 일반적으로 TextField는 무제한 너비를 가질 수 없습니다. 이는 상위 위젯이 유한 너비 제한 조건을 제공하지 않을 때 발생합니다. 예를 들어, InputDecorator가 Row에 포함되어 있으면 너비를 제한해야합니다. 확장 위젯 또는 SizedBox를 사용하여 InputDecorator 또는이를 포함하는 TextField의 너비를 제한 할 수 있습니다. 'package : flutter/src/material/input_decorator.Dart': 어설 션 실패 : 910 pos 7 : 'layoutConstraints.maxWidth <double.infinity'오류 발생 위젯의 사용자 작성 조상은 다음과 같습니다. TextField file : /// C : /CommBack/My_Workplace/Flutter/wiremusic/wiremusic_dev/lib/wire/widgets/searchfield.Dart : 15 : 14 ================================ =====================================

======== (3) 라이브러리 렌더링에 의해 포착 된 예외 b1ce0 relayoutBoundary = up26 NEEDS-Paint NEEDS-COMPOSITING-BITS-UPDATE 'package : flutter/src/rendering/box.Dart': 어설 션 실패 : 1681 번째 줄 12 : 'hasSize'오류 발생 위젯의 사용자 생성 조상은 : 텍스트 필드 파일 : ///C:/CommBack/My_Workplace/Flutter/wiremusic/wiremusic_dev/lib/wire/widgets/searchfield.Dart:15:14 =================== ============================================

이전 소스 라인 아래에 있기 때문입니다.

return Container(
  color: Colors.yellow,
  constraints: BoxConstraints(minWidth: 230.0, minHeight: 25.0),
  child: TextField(),
);

textField에는 조상 hasSize이 명시 적으로 필요하고 컨테이너에 너비를 명시 적으로 언급 한 후 오류가 사라졌습니다. Thanos

return Container(
  color: Colors.yellow,
  width: 230,
  constraints: BoxConstraints(minWidth: 230.0, minHeight: 25.0),
  child: TextField(),
);

이것이 누군가를 도울 수 있기를 바랍니다.

1
ArifMustafa