Flutter에서 다중 페이지 앱을 만들고 있습니다. 내비게이션을 사용할 때 검은 색 화면이 나타납니다.
import 'package : flutter / material.dart'; void main () => runApp (MyHomePage ()); class MyHomePage extends StatelessWidget { @override Widget build (BuildContext context) { return MaterialApp ( home : Page0 (), ); } } class Page0 extends StatefulWidget { @override _Page0State createState () => _Page0State (); } class _Page0State extends State { @override Widget build (BuildContext context) { return Scaffold ( backgroundColor : Color (0xFF493597), body : ListView ( children : [ Padding ( padding : EdgeInsets.only (top : 15.0, left : 10.0), ), SizedBox ( height : 25.0, ), Padding ( padding : EdgeInsets.only (left : 40.0), child : Row ( children : [ 텍스트 ( '비용', 스타일 : TextStyle ( fontFamily : 'Montserrat', 색상 : Colors.white, fontWeight : FontWeight.bold, fontSize : 25.0), ), SizedBox ( width : 10.0, ), Text ( 'What', style : TextStyle ( fontFamily : 'Montserrat', color : Colors.white, fontSize : 25.0, ), ), ], ), ), SizedBox (height : 60.0), 컨테이너 ( 여백 : EdgeInsets.only ( 왼쪽 : 10.0, 오른쪽 : 10.0, ), 높이 : MediaQuery.of (context) .size.height-150, 장식 : BoxDecoration ( color : Color (0xFFFCFCFC), borderRadius : BorderRadius.only ( topLeft : Radius.circular (75.0), topRight : Radius.circular (75.0), ), ), 자식 : ListView ( primary : false, padding : EdgeInsets.only ( 왼쪽 : 15.0, 오른쪽 : 20.0, 위쪽 : 25.0, ), 자식 : [ Padding ( padding : const EdgeInsets.only ( top : 30.0, ), child : Column ( children : [ // greeting text Row ( children : [ Expanded ( child : Center ( child : Text ( 'Hello! :)', style : TextStyle ( fontFamily : 'Permanent) -Marker ', 색상 : Colors.black, fontSize : 30.0, ), ), ), ), ], ), SizedBox ( height : 30.0, ), // add button Row (children : [ Expanded ( flex : 1, child : Container ( height : 100.0, width : 100.0, child : FittedBox) ( 자식 : FloatingActionButton ( 고도 : 10.0) , backgroundColor : Colors.white, 자식 : Icon ( Icons.add, color : Colors.black, ), onPressed : () { Navigator.push (context, MaterialPageRoute (builder : (context) => NewTrip ()),); }, ),`` ), ), ), // 텍스트 추가 Expanded ( flex : 1, child : Text ( 'New trip', style : TextStyle ( fontFamily : 'Nanum', fontSize : 30.0, ), ), ), ]), SizedBox ( height : 30.0, ), children : [ // 이전 여행 버튼 Row ( Expanded ( flex : 1, 자식 : Container ( 높이 : 100.0, 너비 : 100.0, 자식 : FittedBox ( 자식 : FloatingActionButton ( 고도 : 10.0, backgroundColor : Colors.white, onPressed : () {}, 자식 : Icon ( 아이콘) .평가, color : Colors.black, ), ), ), ), ), ), // 이전 여행 텍스트 Expanded ( flex : 1, child : Text ( 'Previous trips', style : TextStyle ( fontFamily : 'Nanum', fontSize : 30.0, ), ) ], ), SizedBox ( 높이 : 50.0, ), ], ), ), ], ), ), ], ), ); } }
그리고 NewTrip 위젯은 다음과 같습니다.
class NewTrip extends StatelessWidget { @override Widget build (BuildContext context) { return MaterialApp ( home : Scaffold ( body : Text ( 'NEW TRIP'), ), ); } }
홈페이지는 정상적으로로드되지만 새 여행 버튼을 클릭하자마자 검은 색 화면이 표시됩니다. 아마도 MaterialApp 또는 Scaffold에 문제가 있지만 아직 고칠 수 없습니다. 누구든지 문제가 무엇이고 어떻게 해결해야하는지 말해 줄 수 있습니까?
의견에 요청 된대로 전체 코드를 업데이트했습니다.
좋아, 인터넷에 대한 조사 끝에 문제를 일으키는 FloatingActionButton이 있다는 것을 알았습니다.
FloatingActionButton을 MaterialButton으로 바꾸었고 이로 인해 문제가 해결되었습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다