프로그래밍257 [Flutter] Screen Orientation // This will works always for lock screen Orientation. void main() { WidgetsFlutterBinding.ensureInitialized(); SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]) .then((_) { runApp(new MyApp()); }); } 2022. 4. 27. [Flutter] 카카오 로그인 설정 https://developers.kakao.com/docs/latest/ko/getting-started/sdk-flutter Flutter에서 카카오 로그인을 사용하려면 pacakge를 추가해야 합니다. pubspec.lock kakao_flutter_sdk_user: ^1.0.0 미리 Android, IOS 플랫폼도 등록해야 한다고 합니다. Android 키 등록을 하려면 jks 파일을 만들어야 하는데, cmd 창에서 다음 명령어를 이용합니다. keytool -genkey -v -keystore keystore경로\keystore.jks -alias [alias 이름] -keyalg [암호화방식, RSA 입력] -keysize [key 크기, 2048] -validity [유효기간, 20000] e.. 2022. 4. 23. [Flutter] StatusBar Color void setWhiteTextStatusBar() { SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( statusBarColor: Colors.transparent, systemNavigationBarIconBrightness: Brightness.light, statusBarIconBrightness: Brightness.light, statusBarBrightness: Brightness.dark)); } void setBlackTextStatusBar() { SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( statusBarColor: Colors.transpare.. 2022. 4. 21. [Flutter] ExpandablePageView initial page ExpandablePageView 플러그인을 사용하고 있는데 자꾸 페이지를 동적으로 처리할 때 항상 0번으로 셋팅이 되어 있어서 확인을 해보니 내부적으로 Controller가 설정이 안 되어 있으면 기본으로 생성을 하고 initial로 0번을 넣도록 되어 있다. controller를 직접적으로 사용하지 않더라도 임의로 생성해서 initialPage 정보를 넣어주면 해결 된다. ExpandablePageView( controller: PageController(initialPage: iPageIdx), onPageChanged: (iIdx) { }, children: [], ) 2022. 4. 18. [Flutter] Scroll To Top 버튼 final ScrollController _scrollController = ScrollController(); void _scrollToTop() { _scrollController.animateTo(0, duration: const Duration(milliseconds: 750), curve: Curves.ease); } // ScrollView의 controller 속성에 추가 SingleChildScrollView( controller: _scrollController, ... ), // Top 버튼 in Column Padding( padding: const EdgeInsets.all(margin16), child: Align( alignment: Alignment.centerRight, ch.. 2022. 4. 17. [Flutter] BackPress to exit int iPrevClickTime = 0; void updatePrevClickTime() => iPrevClickTime = DateTime.now().millisecondsSinceEpoch; bool clickedToExit() { int iClickTime = DateTime.now().millisecondsSinceEpoch; if(iClickTime - iPrevClickTime < 2000) { return true; } return false; } // wiget에서 WillPopScope( onWillPop: () async { if (clickedToExit()) { return true; } else { Fluttertoast.showToast('Press one more to exi.. 2022. 4. 16. [Flutter] WebView on Web flutter Trying to load an image from another domain 웹뷰를 사용하려면 기존에 web 플랫폼을 지원하는 webviewwx 플러그인을 추가하여 사용한다. 위에서 설정한 configuration 설정도 해줘야 한다고 합니다. UrlByPass쪽에 이슈가 있는지 처음 연결을 하고 이후에 클릭을 좀 하면 막혀버린다. (web) 모바일은 정상. 버그가 있기는 한데, 소개 페이지 띄우는 정도만 사용한다면 괜찮을 듯? 2022. 4. 16. [Flutter] Android 어플 Flutter로 실행시키기 최근에 회사에서 작업한 내용이 Android로 개발한 어플을 Flutter 환경에서 실행시키는 것을 해봤습니다. 플랫폼 별 코드 작성 앱에서 커스텀하게 플랫폼 별 코드를 작성하는 방법을 배워보세요. flutter-ko.dev MethodChannel이라는 개념을 이용하여 Flutter로 실행시킨 어플에서 바로 Android쪽 소스의 Activity를 호출하는 형태로 작업을 했습니다. Dart의 코드로 실행시켜서 버튼을 누르면(Native Call) 프로젝트의 FlutterActivity가 call을 받아서 startActivity를 통해 실질적으로 사용할 Activity를 호출합니다. 이런 식으로 처리하면, Flutter를 기반으로 실행을 시켜서 Android Native코드를 실행시킬 수 있습니다. m.. 2022. 4. 14. [Flutter] ScrollView 처리 Toolbar 형태로 작업을 한 이후에 다른 위젯들은 Scrollable 형태가 되도록 하고 싶다. Column( children: [ Column( children: [ // wigets ]), ]), 이런 형태에서 같이 처리하려는 위젯을 Column으로 감싸서 하나의 자식으로 만든다. 이후에 SingleChildScrollView로 감싸고 그걸 다시 Expanded로 감싸면 남은 영역에 대해서 ScrollView처리가 된다. Expanded( child: SingleChildScrollView( scrollDirection: Axis.vertical, child: Column( children: [ // wigets ], ), ), ), 2022. 4. 12. 안드로이드 스튜디오 빨간 줄 나올 때 안드로이드 스튜디오에서 빨간 줄이 엄청나게 나올 때 문제를 해결한 방법을 기록합니다. 1. File - Invalid Caches / Restart 2. File - Sync Project with Gradle Files 3. Build - Clean Project / Rebuild 4. 프로젝트 폴더의 .gradle .idea 파일 삭제 5. Android Studio 버전 업데이트 혹은 재설치 6. 프로젝트 하나를 다시 파서 코드 옮기기 다 안 되다가 5번으로 해결 했습니다;; ㅎㅎ 2022. 4. 11. 이전 1 ··· 19 20 21 22 23 24 25 26 다음