일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 넷플릭스
- FSM
- 명언모음
- Coroutine
- kotlin
- Streaming
- recyclerview
- Freesound
- Flutter
- Firebase
- 소울칼리버6
- 1인개발자
- 오픈소스
- 장자명언
- 공자명언
- 공부집중
- DART
- 파이썬
- androidx
- 이모지메모
- 벤자민플랭클린
- ASMR
- jetpack compose
- bash
- 좋은글필사하기
- Linux
- 코틀린
- 이모지
- Android
- 명심보감
Archives
- Today
- Total
Vintage appMaker의 Tech Blog
[Flutter] 줄맞춤이 필요할 때, TextBaseline, Baseline widget 본문
Source code or Tip/Flutter & Dart
[Flutter] 줄맞춤이 필요할 때, TextBaseline, Baseline widget
VintageappMaker 2022. 12. 27. 21:51
Row에서 화면의 다른크기의 문자들을 아래줄부터 맞추어야 할 때는
Row의 textBaseline 파라메터를 TextBaseline.alphabetic로 넘긴다.
그리고 crossAxisAlignment 파라메터를 CrossAxisAlignment.baseline으로 넘긴다.
부모위젯의 범위에 벗어나는 위치에 위젯을 배치하고자 한다면 Baseline 위젯을 사용할 때도 있다.
단, 부모위젯의 크기가 Fix가 된 상태여야 하며, baseline을 기준으로 위치를 지정해야 한다.
baseline 파라메터는 부모위젯의 baseline을 기준으로 얼마만큼 이동할 지를 설정한다. -값을 가질 경우, 위로 향한다.
baselineType 파라메터는 일반적으로 TextBaseline.alphabetic을 설정한다.
다음은 전체소스이다.
import 'package:flutter/material.dart';
void main() {
runApp(TestApp());
}
class TestApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'test',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: UnderLineTestBar(),
);
}
}
class UnderLineTestBar extends StatefulWidget {
UnderLineTestBar({Key? key}) : super(key: key);
@override
_UnderLineTestBarState createState() => _UnderLineTestBarState();
}
class _UnderLineTestBarState extends State<UnderLineTestBar> {
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
List<Widget> lstWidget = [
Text(
"Hi",
style: TextStyle(fontSize: 40),
),
Text(
"Hi",
style: TextStyle(fontSize: 20),
),
Text(
"Hi",
style: TextStyle(fontSize: 10),
),
];
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.transparent,
elevation: 0.0,
),
body: Center(
child: Column(
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.baseline,
textBaseline: TextBaseline.alphabetic,
children: lstWidget,
),
Divider(
height: 1,
),
Row(
//crossAxisAlignment: CrossAxisAlignment.baseline,
textBaseline: TextBaseline.alphabetic,
children: lstWidget,
),
Divider(
height: 1,
),
Container(
width: double.infinity,
margin: EdgeInsets.all(20),
height: 150,
child: Card(
color: Colors.green,
child: Baseline(
baseline: 160,
baselineType: TextBaseline.alphabetic,
child: Align(
alignment: Alignment.centerRight,
child: Icon(
Icons.add_a_photo,
size: 40,
)),
),
),
)
],
),
),
);
}
}
'Source code or Tip > Flutter & Dart' 카테고리의 다른 글
[Flutter] push한 이전화면에서 build가 예상치 못하게 발생할 시 (0) | 2023.02.28 |
---|---|
[Flutter] chatGPT를 이용한 예제 (0) | 2023.01.22 |
[Flutter] scroll시 AppBar 투명 (0) | 2022.12.23 |
[Flutter] Flow 위젯을 이용한 레이아웃 적용 (0) | 2022.12.05 |
[Flutter] 특정위젯만 갱신하기 - Statefulbuilder 위젯 (0) | 2022.11.30 |
Comments