Transform.scale() 을 사용하면 다른 곳에 영향을 주지 않으면서 크기를 변경할 수 있다
Clip.hardEdge 을 주게되면 overflow: hidden과 같다
기존 코드에서 Container 를 분리하여 재사용 가능한 사용자 정의 위젯을 만든다
import 'package:flutter/material.dart';
class CurrencyCard extends StatelessWidget {
final String name, code, amount;
final IconData icon;
const CurrencyCard({
super.key,
required this.name,
required this.code,
required this.amount,
required this.icon,
});
Widget build(BuildContext context) {
// TODO: implement build
return Container(
clipBehavior: Clip.hardEdge,
decoration: BoxDecoration(
color: const Color(0xFF1F2123),
borderRadius: BorderRadius.circular(25),
),
child: Padding(
padding: const EdgeInsets.all(30),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
name,
style: const TextStyle(
color: Colors.white,
fontSize: 32,
fontWeight: FontWeight.w600),
),
const SizedBox(
height: 10,
),
Row(
children: [
Text(
amount,
style: const TextStyle(
color: Colors.white,
),
),
const SizedBox(
width: 5,
),
Text(
code,
style: TextStyle(
color: Colors.white.withOpacity(0.8),
),
),
],
),
],
),
Transform.scale(
scale: 2.2,
child: Transform.translate(
offset: const Offset(-5, 12),
child: Icon(
icon,
color: Colors.white,
size: 88,
),
),
),
],
),
),
);
}
}
final _blackColor = const Color(0xFF1F2123);
식별자 앞에 _ 를 붙이면 private 하게 만들겠다는 뜻이다
SingleChildScrollView 위젯을 사용하면 스크롤이 가능한 페이지로 변경된다