글자 입력란
TextField(
decoration: InputDecoration(
icon: Icon(Icons.star), // prefixIcon, suffixIcon..
),
),
TextField(
decoration: InputDecoration(
icon: Icon(Icons.abc),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.lightBlue, width: 2.0),
borderRadius: BorderRadius.circular(30),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.blueAccent, width: 2.0),
borderRadius: BorderRadius.circular(30),
),
border: OutlineInputBorder(),
filled: true,
fillColor: Colors.blue.shade50,
),
),
TextField(
decoration: InputDecoration(
hintText: 'hintText',
helperText: 'helperText',
labelText: 'labelText',
counterText: 'counterText'
),
),
재사용 잦은 UI나 큰 페이지 단위로 커스텀 위젯화
MaterialApp(
home: Scaffold(
appBar: AppBar(),
body: SizedBox( child: Custom() ),
)
);
class Custom extends StatelessWidget {
const Custom({super.key});
Widget build(BuildContext context) {
return 따로 뺄 위젯()
}
}
좌측 그림 + 우측 Text 레이아웃
ListTile(
leading: Image.asset('assets/coolgam.png'),
title: Text('멋감'),
)
목록 동적 생성
ListView.builder(
itemCount: list.length(),
itemBuilder: (context, i) {
return ListTile(
leading: Image.asset('assets/coolgam.png'),
title: Text(list[i]),
)
}
)
여러 박스 배치 시 너비/높이를 고정값 말고 비율로 주고 싶을 때
Row(
children: [
Flexible(flex: 1, child: Container(color: Colors.amber)),
Flexible(flex: 2, child: Container(color: Colors.blue)),
]
)
→ 각 1 : 2만큼 차지
여러 박스 배치 시 하나의 박스만 남은 가로폭 꽉 차게 만들기
Row(
children: [
Expanded(flex: 1, child: Container(color: Colors.amber)),
Container(width: 50, child: Container(color: Colors.blue)),
]
)
EdgeInsets.all(10)이나 .fromLTRB(10, 20, 30, 40)` 같이 드럽게 줘야함