[MariaDB] 테이블 이름 변경
alter table 테이블이름 rename 새로운테이블이름 참고 RENAME TABLE Change a table's name. mariadb.com
alter table 테이블이름 rename 새로운테이블이름 참고 RENAME TABLE Change a table's name. mariadb.com
Container위젯의 decoration에서 BoxDecoration을 통해 원하는대로 꾸민 뒤 Row나 Column위젯을 child로 넣으면 된다. Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), color: Colors.lightBlue, ), child: ... ) Row나 Column의 자식 위젯의 constraints 문제로 인해 RenderBox was not laid out에러가 발생할 경우 Container에 width와 height를 지정해주거나 Expanded와 같은 크기를 지정해주는 위젯으로 감싸 해결할 수 있다. 전체 코드 참고 How to make the background of Text..
Navigator클래스 내의 static인 popUntil과 NavigatorState클래스의 멤버 함수 두 개가 있다. 그 중 static인 함수는 첫번째 매개변수의 BuildContext를 통해 NavigatorState를 찾은 뒤에 NavigatorState클래스의 popUntil을 호출하도록 되어있다. 콜백 함수의 반환 값이 true일 때 pop을 그만하도록 구현되어있다. 예시 내가 유용하게 쓴 곳은 BottomNavigationBar를 두고 각 탭별로 NavigatorState를 가지고 있게 한 상황이였다. 게시판이라는 탭이 있으면 게시판에서 어떤 글을 보고 있을 때 같은 탭인 게시판을 누르면 게시판 탭의 메인 화면으로 이동하도록 했고 이미 메인 탭일 땐 아무런일도 일어나지 않도록 구현했었다. ..
기본text는 body2(bodyText2) 란 이름의 text style로 적용되어 있다. 이 body2의 TextStyle을 변경하면 모든 text가 공통적으로 변경된다. 참고 Use themes to share colors and font styles How to share colors and font styles throughout an app using Themes. docs.flutter.dev TextTheme class - material library - Dart API Material design text theme. Definitions for the various typographical styles found in Material Design (e.g., button, captio..
Column위젯의 mainAxisSize의 값으로 MainAxisSize.min을 줘서 해결 참고 Flutter - Auto size AlertDialog to fit list content I need to load list cities dynamically from rest webservice and let user choice one city from alert dialog. My code: createDialog() { fetchCities().then((response) { showDialog( ... stackoverflow.com
AlertDialog 창 외부 화면을 눌러도 안꺼지게 막기 showDialog의 barrierDismissible 값을 false로 설정한다. 뒤로가기 버튼 막기 show dialog의 builder의 최상위 위젯을 뒤로가기 버튼에 대한 콜백을 설정할 수 있는 WillPopScope위젯으로 두고 onWillPop에 () async => false 콜백을 설정해 아무일도 일어나지 않게 함 둘 다 적용하면 아래와 같다. showDialog( context: context, barrierDismissible: false, builder: (context) { return WillPopScope( onWillPop: () async => false, child: AlertDialog( ... ), ); } ) ..
android android/app/src 내의 debug, main, profile폴더 내의 AndroidManifest.xml파일 내 상단에 있는 package의 값을 패키지 이름으로 변경 android/app/src 내의 build.gradle파일에서 applicationId도 위에 바꾼 패키지 이름대로 변경 applicationId "change.this.name" ios ios/Runner 내의 Info.plist파일에서 CFBundleIdentifier란 값을 가진 key 태그 아래의 string태그의 값을 원하는 패키지 이름으로 변경 CFBundleIdentifier change.this.name 만약 ${PRODUCT_BUNDLE_IDENTIFIER} 란 이름으로 되어있다면 ios/Runn..
문제점 내가 발생한 문제는 두가지이다. 문제 1 firebase플러그인에 대한 내용이 포함된 에러 및 버전을 자동으로 9.0으로 맞춘다는 메시지 출력 [!] Automatically assigning platform iOS with version 9.0 on target Runner because no platform was specified. Please specify a platform for this target in your Podfile. 원인 : firebase를 사용하기위한 ios minimum버전을 맞추지않아 발생 문제 2 LoadError -dlopen~~~ 에러 발생 원인 : Apple Silicon(M1)에 맞지않는 cocoapods 문제로 인해 발생 이외에 다른 패키지의 버전이 맞지..
1개는 알고있는 상태이기에 그 외의 개수에 의문이 든 것이라 생각하고 작성하지 않는다. 간혹 list를 다루는 글들을 보다보면 점이 2개, 3개 붙어있는 요상한 친구들이 보이는데 의미를 몰라 코드 해석을 정확히 할 수 없었다. 이에 대해 찾아보고 정리했다. 2개 (cascade notation) 생성한 object 자신의 멤버를 이어서 호출할 수 있도록 해준다. 출력 결과를 보면 알겠지만 paint1과 paint2는 같은 의미로 작성된다. 위 예제에선 없지만 멤버 함수도 호출된다. 하지만 알아둬야 할 것은 마지막에 호출한 멤버 함수의 return을 받거나 중간에 호출한 멤버 함수의 return을 받아 중간에 사용하는 것이 아니다. 제대로 이해 못하고 아래 예시 코드를 짜니 문제가 발생했다. 출력하면 에러..
문제점 content type을 application/json으로 넣을 경우의 body엔 application/json에 맞게 String값이 들어가야하는데 map형식으로 넣어서 문제 발생 다시 말해서 application/json은 json string(json 형태를 문자열로 입력하는 형식)타입을 전송한단 것을 의미하기 때문에 map으로 넣으면 안되는 것 해결방법 map형식인 데이터를 dart:convert 패키지 내의 jsonEncode함수로 래핑하여 String으로 변경되어 들어가도록 구현 예시는 아래와 같다. import 'package:http/http.dart'; import 'dart:convert'; func() async { final result = await post(Uri.pa..