ClipRRect는 Flutter에서 사용되는 위젯으로, 자식 위젯을 둥근 모서리(RoundedRectangle)로 잘라내는 데 사용됩니다. ClipRRect는 UI 디자인에서 모서리를 부드럽게 처리하거나 특정 영역만 표시하고 싶을 때 유용합니다.
ClipRRect는 자식 위젯과 borderRadius 속성을 받아 해당 영역을 둥글게 자릅니다.
ClipRRect(
borderRadius: BorderRadius.circular(16.0), // 둥근 모서리 반지름
child: Container(
color: Colors.blue,
width: 100,
height: 100,
),
)
borderRadius
BorderRadius.circular(value)를 사용하여 모든 모서리를 같은 값으로 둥글게 만들거나, BorderRadius.only를 사용하여 특정 모서리만 둥글게 설정할 수 있습니다. BorderRadius.circular(16.0) // 전체를 둥글게
BorderRadius.only(
topLeft: Radius.circular(16.0),
bottomRight: Radius.circular(8.0),
) // 특정 모서리만 둥글게clipBehavior
Clip.antiAlias로, 클리핑을 부드럽게 처리합니다.Clip.none: 클리핑하지 않음.Clip.hardEdge: 성능에 초점을 둔 간단한 클리핑.Clip.antiAlias: 부드러운 가장자리 처리.Clip.antiAliasWithSaveLayer: 부드러운 가장자리와 함께 추가 레이어 생성.이미지를 ClipRRect로 감싸서 둥근 모서리를 적용합니다.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('ClipRRect Example')),
body: Center(
child: ClipRRect(
borderRadius: BorderRadius.circular(16.0),
child: Image.network(
'https://via.placeholder.com/150',
width: 150,
height: 150,
fit: BoxFit.cover,
),
),
),
),
);
}
}
텍스트와 배경색을 포함한 컨테이너에 특정 모서리를 둥글게 만듭니다.
ClipRRect(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(20.0),
bottomRight: Radius.circular(20.0),
),
child: Container(
color: Colors.amber,
width: 200,
height: 100,
child: Center(
child: Text(
'Rounded Corners!',
style: TextStyle(fontSize: 16),
),
),
),
)
ClipRRect를 사용해 버튼을 둥글게 처리합니다.
ClipRRect(
borderRadius: BorderRadius.circular(30.0),
child: ElevatedButton(
onPressed: () {},
style: ElevatedButton.styleFrom(
padding: EdgeInsets.symmetric(horizontal: 32, vertical: 16),
),
child: Text('Rounded Button'),
),
)
ClipRRect와 다른 클리핑 위젯 비교ClipOval: 원형(또는 타원형)으로 클리핑.ClipPath: 사용자 정의 경로를 따라 클리핑.ClipRect: 사각형 영역으로 자름 (모서리 둥글림 없음).