11월, 2020의 게시물 표시

flutter error 발생시 해결 방안 --

  Unhandled Exception: MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences) Run 'flutter clean' Run 'flutter pub get' Delete the app from the emulator  새로운 플러그인을 사용 하여 발생 하는 경우 초기화 setting 을 해야한다. A RenderFlex overflowed by 283 pixels on the bottom. --->  return new Scaffold ( resizeToAvoidBottomPadding: false, resizeToAvoidBottomInset : false , The relevant error-causing widget was:   TextFormField -->  An InputDecorator, which is typically created by a TextField, cannot have an unbounded width. -- > TextField   에 특정 너비를 제공해야합니다 간단히   width   를 제공하십시오.  당신의   Container   에서  또는 당신의   Column   를 포장  와이즈 비즈 . Container ( width : 100 , // do it in both Container child : TextField (), ),

flutter post 방식으로 서버 통신 @RequestBody 사용을 해야 하는 경우

  Future<Post> RestApi_Post () async { Map<String , dynamic > queryJson = { "login_id" : "123456789" , "login_pw" : "1234" } ; var bodyEncoded = json.encode(queryJson) ; http.Response response = await http.post( Uri. encodeFull ( 'http://192.168.0.8:8080/Login/signIn' ) , headers: <String , String>{ HttpHeaders. contentTypeHeader : 'application/json' , HttpHeaders. acceptHeader : '*' // "Accept": "application/json", // "Content-Type": "application/x-www-form-urlencoded" } , body: json.encode(queryJson) , // encoding: Encoding.getByName("utf-8"), ) ; print( "jsonEncode(queryJson) sss==" + response.toString()) ; print( "jsonEncode(queryJson) sss==" + json.encode(queryJson).toString()) ; Map<String , dynamic > responseBody = jsonDecode(response. body ) ;...

onPressed FutureBuilder 사용 하기 위해서

  onPressed: () async { var result = await fetchPost() ; print( 'In Builder===' +result. id .toString()) ; if (result. id .toString()== '2' ){ Navigator. pushNamed (context , '/jangbu_m_01' ) ; } else { print( "ssssssssss=====" +result. title .toString()) ; } ;

flutter route

  플러터에서 페이지 UI 개념은 라우트(route)로 정의하고 있다. 라우트 생성과 이동은 사용자 동작 시나리오와 관련이 있어 매우 중요하다. 라우트(route)는 안드로이드 네이티브 코드의 액티비티(Activity)와 iOS 네이티브 코드의 뷰컨트롤러(ViewController)와 대응되는 개념이다. 라우트의 기본 구성과 동작 원리에 대해서 알아보자. 사용자에게는 페이지(Page) 개념으로 익숙한 위와 같은 예시 화면이 route 단위로 보면 되며, 대화상자(Dialog) 등은 route 개념으로 볼 수 없다. route 내에는 Appbar나 기타 페이지를 구성하는 요소들이 하위 위젯(widget)으로 포함될 수 있다. 라우트(route)의 특징으로는 UI 상으로 뒤로가기 아이콘이 자동으로 생성된다. (위 그림의 item 2) 뒤로가기 아이콘은 휴대폰의 back키와 상호작용하도록 자동설정된다. 위의 Page1에서 뒤로가기 버튼이 없는 이유는 Page1이 홈화면으로 지정되기 때문에 뒤로가기 아이콘이 생성되지 않는다. named route를 통해 화면 관리하기 Navigate with named routes https://flutter.dev/docs/cookbook/navigation/named-routes 만약 여러 곳에서 같은 화면으로 navigate 해야 할 때 매번 Route 코드를 추가해야 하는 중복이 발생할 수 있습니다. 이 문제를 해결해주는 게 “named route"입니다. named route로 navigate를 하려면 Navigator.pushNamed()를 이용해야 합니다. initialRoute 속성을 사용할 때는 home 속성을 사용하지 말아야 합니다.