Card
모서리와 그림자를 가지는 패널
연관된 정보를 같이 보여줄때 주로 쓰인다. (앨범 정보, 장소 정보, 연락처 세부사항 등)
예를 들면 이런거
Code Template
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
home: ComplexCardExample(),
));
}
class ComplexCardExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Complex Card Widget Example'),
),
body: ListView.builder(
itemCount: 5,
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Card(
elevation: 5,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: 200,
decoration: BoxDecoration(
borderRadius:
BorderRadius.vertical(top: Radius.circular(15)),
image: DecorationImage(
image: NetworkImage(
'https://miro.medium.com/v2/resize:fit:720/format:webp/1*0BVmYD7v7bnIAUkzCZjRNA.jpeg'),
fit: BoxFit.cover,
),
),
),
Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Title $index',
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
),
),
SizedBox(height: 8),
Text(
'Description for item $index goes here. This is just a placeholder text.',
style: TextStyle(
fontSize: 16,
),
),
SizedBox(height: 8),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'\$20.99',
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
color: Colors.green,
),
),
IconButton(
icon: Icon(Icons.favorite_border),
onPressed: () {
// Add your favorite logic here
},
),
],
),
],
),
),
],
),
),
);
},
),
);
}
}
출력
'개발 > Flutter' 카테고리의 다른 글
[Flutter] Dialog (0) | 2024.07.23 |
---|---|
[Flutter] ListTile (0) | 2024.07.23 |
[Flutter] JSON 입출력 (0) | 2024.07.23 |
[Flutter] stateful widget (0) | 2024.07.23 |
[Flutter] stateless widget (0) | 2024.07.23 |