티스토리 뷰
Stack 안에서 pixel단위가 아닌 percentage(ratio)로 위젯을 위치시키는 방법
낭초비 2022. 1. 19. 11:08Stack 안에서 위젯의 위치를 width와 height로 설정할 때 현재 가능한 영역 내에서 비율로 위치시키는 방법이 궁금했다.
width는 왼쪽에서부터 30% 오른쪽으로, height는 위쪽(top)에서부터 20% 아래쪽으로 처럼 말이다.
구글링을 했더니 stackoverflow에 방법이 있었다. 질문은 2017년에 올라온 것이지만, 답변에는 2021년에 올라온 것도 있어 참고할만 하다. 이와중에 이 질문자가 Remi Rousselet 이다~! 답변도 자기가 해놨네. 몰라서 질문했다기보다 알려주려고 한건가보다
Positioned.fill 과 LayoutBuilder를 이용해서 stack 아래에서 사용가능한 영역을 알아낸 뒤에, 원하는 위치에 위젯을 두기 위해 padding으로 나머지 공간을 점유하는 방식으로 해결하고 있다.
2019년에 추가로 달린 댓글에는, Container의 alignment 파라미터를 이용해서 Alignment.lerp( ) 메소드를 넘겨줘서 가능하다는 내용도 있다.
2021년에는 FractionalOffset과 FractionallySizedBox 를 사용하면 간단하게 해결 가능하다는 글이 있다.
참고 자료는 아래 링크~!
https://stackoverflow.com/questions/46637197/position-widget-in-stack-with-percent
여기 대답 중에 FractoinalOffset, FractionallySizedBox를 사용하는 방법이 간단해 보인다.
그리고 LayoutBuilder를 사용할 경우 Stack의 밖에서 감싼뒤 Stack 내부의 위젯들을 위치시킬때 Transform.translate를 사용하면 된다고 한다.
'Dart & Flutter > 궁금했던 것, 몰랐던 것' 카테고리의 다른 글
List를 하나의 string으로 변환하기 (Serialization) (0) | 2022.04.20 |
---|---|
Flutter 에서 사용 되는 Size의 단위 (0) | 2022.03.30 |
Responsive design에 사용하기 좋은 위젯, 패키지 (0) | 2021.12.24 |
Container, SizedBox, Stack, Column, Row의 특징 (0) | 2021.12.22 |
scaffoldKey가 왜 필요한가? 어떨때 쓰이는가? (0) | 2021.12.20 |
- Total
- Today
- Yesterday
- 에러
- BLE
- TextFormField
- position
- 앱개발
- addPostFrameCallback
- DART
- 플러터
- Flutter
- 앱 프로그래밍
- 크롬
- UI
- plugin
- 문제 해결
- 디자인
- Bluetooth
- IOS
- Chrome
- TextField
- 앱
- 이미지
- hide
- Syncfusion
- SizedBox
- error
- firebase
- 인사이트
- 다트
- UX
- 한빛미디어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |