Stack 안에서 위젯의 위치를 width와 height로 설정할 때 현재 가능한 영역 내에서 비율로 위치시키는 방법이 궁금했다. width는 왼쪽에서부터 30% 오른쪽으로, height는 위쪽(top)에서부터 20% 아래쪽으로 처럼 말이다. 구글링을 했더니 stackoverflow에 방법이 있었다. 질문은 2017년에 올라온 것이지만, 답변에는 2021년에 올라온 것도 있어 참고할만 하다. 이와중에 이 질문자가 Remi Rousselet 이다~! 답변도 자기가 해놨네. 몰라서 질문했다기보다 알려주려고 한건가보다 Positioned.fill 과 LayoutBuilder를 이용해서 stack 아래에서 사용가능한 영역을 알아낸 뒤에, 원하는 위치에 위젯을 두기 위해 padding으로 나머지 공간을 점유하는 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cJtxVh/btroJhSpwNt/a47pvqFQHiAjiMz99Tz6IK/img.jpg)
앱이 실행되는 장치에 따라 앱이 보여지는게 달라진다 가장 큰 문제가 글자 크기 인데, 태블릿이나 pc냐 모바일 폰이냐에따라 표시되어야 하는 글자 크기가 달라지므로 적응적으로 글자 크기를 변화시켜주는 것이 중요하다. 나의 경우, 테블릿 환경에서 작업을 하면서 text 위젯을 fittedBox.scaleDown으로 만들어 넣고있다. 그러면 모바일에서 앱을 실행하더라도 글자를 줄여서 표현되기 때문에 큰 문제는 없었다. 그런데 혹시나 좀더 편리하거나 효과가 좋은 위젯이나 방법이 있나 싶어서 잠시 찾아보았다. Responsive design의 기본적인 정보는 아래링크를 참고하면된다. https://docs.flutter.dev/development/ui/layout/adaptive-responsive Creati..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bffYUS/btroFL7a368/2OaxKKLsEiGFhBflbZLT2K/img.jpg)
Container 크기 지정이 없을 경우 차지할 수 있는 최대의 범위를 가져간다. SizedBox 크기르 지정하지 않을 경우 Child를 나타낼 수 있는 최소한의 layout을 가져간다. Stack 자식들중 가장큰 크기에 맞춘다. 여러 자식들의 Alignment를 다 다르게 주고 싶어서 Align으로 감싼뒤 alignment property에 원하는 Alignment(x, y)를 넣어 보았는데 x축으로는 적용이 되는데 y축으로는 alignment가 적용이 되지 않는다. Stack에 api doc를 보았더니 아래와 같은 내용이 있다. https://api.flutter.dev/flutter/widgets/Stack-class.html Stack class - widgets library - Dart API..
유튜브에서 본 코드를 따라서 사용하다가, scaffoldKey를 생성하던데, 이걸 어디다 쓰는지 모르겠다. var scaffoldKey = GlobalKey(); 이렇게 선언하고 있는데, 전역(scaffold 아래의 어느 위젯에서든)으로 scaffold의 state를 쉽게 참조 할 수 있게 해주는 듯해보이다. 하지만 정확하게 이해하기 위해 구글링을 더 해보았다. https://stackoverflow.com/questions/68993864/scaffold-key-what-the-purpose-is-and-where-it-is-used Scaffold key - what the purpose is and where it is used What is scaffoldKey what the purpose is..
Flutter 에서 코딩한 프로그램을 실행시 실행 장치가 Web(크롬)일 경우, 실행된 앱에서 이미지(네트워크를 통해 불러오는)가 로딩되지 않았다. 그리고 엑스박스 안에 "Failed to load network image" 라는 메세지가 있다. 이상하다. 네트워크에 있는 이미지가 문제가 있나? 싶어서 URL을 가져다가 크롬 브라우저 주소창에 붙여넣고 엔터를 치니 사진이 잘 뜬다. 문제를 해결하게 구글링을 했다. StackOverFlow에 있는 설명과 해결책. CORS is a mechanism that browsers use to control how one site accesses the resources of another site. It is designed such that, by default..
flutter 2.3.2 을 쓰고 있다가, 오늘 2.5.2로 업그레이드 했는데 이 때부터 웹(크롭)에서 앱을 올려 테스트 하던것에 문제가 생겼다. 마우스로 스크롤이 되지 않는 것이었다. 이상하다 싶어서 다시 모바일 에뮬레이터로 실행시켜보니, 문제없이 잘 동작했다. 웹에서 돌릴때만 이러한 문제가 발생했다. 구글링을 해보니 flutter 2.5 버전이후부터는 웹(PC)에서 마우스를 이용한 drag를 막아 놓았다고 한다. 그래서 이것을 해결하려면 ScrollBehavior 에서 dragDevices 에 mouse를 추가해줘야 했다. 자세한 내용은 아래 참고. https://flutter.dev/docs/release/breaking-changes/default-scroll-behavior-drag 위의 페이지..
VSCode에서 flutter code를 Chrome에서 실행시키기 위해 F5를 누르면, Failed to create server socket (OS Error: Failed to start accept) 에러가 뜬다. 이 문구를 구글에서 검색하면 해결책으로 flutter run -d chrome --web-hostname=127.0.0.1 --web-port=8080 와 같이 hostname 에 자신을 가리키는 URL을 입력해서 실행하면 된다고 한다. 하지만 실행할 때마다 일일이 저렇게 명령어를 치기에는 귀찮다. 그래찾은 방법이 .vscode 폴더(없으면 생성해서)에 launch.json 파일을 만들어서 아래와 같이 입력하고 저장해놓는 것이다. { "version": "0.2.0", "configur..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bTlisH/btraWUhjHSz/VLVJiL56sJB1juooi0zKd1/img.png)
ScrollController Listview, GridView, CustomScrollView 등과 같은 scrollable widget을 컨트롤 한다. 멤버 변수들을 State objects로 저장하고, 각각 State.build 를 이용해 재사용한다. 하나의 scroll controller는 여러개의 scrollable widgets을 컨트롤할 수 있지만, offset 값을 가져오는 등의 몇몇 동작을 위해서는 하나의 scroller widget 과 연결되어 사용해야 한다. scroll controller는 개별 scrollable widget의 특정 상태를 관리하기 위해 ScrollPosition을 생성한다. custom ScrollPosition을 사용하기 위해서는 ScrollController의..
- Total
- Today
- Yesterday
- Bluetooth
- IOS
- UI
- firebase
- 인사이트
- Syncfusion
- 플러터
- 에러
- plugin
- Flutter
- 한빛미디어
- 문제 해결
- 크롬
- UX
- position
- SizedBox
- 디자인
- 앱 프로그래밍
- addPostFrameCallback
- 이미지
- error
- BLE
- 앱
- hide
- 다트
- TextField
- TextFormField
- DART
- Chrome
- 앱개발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |