
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
오류가 계속 발생하는대 어디 부분이 문제인지 모르곘습니다..
문제 부분과 수정방안 예시 부탁드립니다.
작성한 코드 및 에러 메세지
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: HomePage(), // 홈페이지 보여주기
);
}
}
class HomePage extends StatelessWidget {
const HomePage({Key? key}) : super(key: key);
void hideKeyboard(BuildContext context) {
final currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus && currentFocus.hasFocus) {
FocusManager.instance.primaryFocus?.unfocus();
}
}
@override
Widget build(BuildContext context) {
// 영화 리스트
List<Map<String, dynamic>> dataList = [
// 데이터 리스트
{
"category": "탑건: 매버릭",
"imgUrl": "https://i.ibb.co/sR32PN3/topgun.jpg",
},
{
"category": "마녀2",
"imgUrl": "https://i.ibb.co/CKMrv91/The-Witch.jpg",
},
{
"category": "범죄도시2",
"imgUrl": "https://i.ibb.co/2czdVdm/The-Outlaws.jpg",
},
{
"category": "헤어질 결심",
"imgUrl": "https://i.ibb.co/gM394CV/Decision-to-Leave.jpg",
},
{
"category": "브로커",
"imgUrl": "https://i.ibb.co/MSy1XNB/broker.jpg",
},
{
"category": "문폴",
"imgUrl": "https://i.ibb.co/4JYHHtc/Moonfall.jpg",
},
];
// 화면에 보이는 영역
return Scaffold(
appBar: AppBar(
actions: [
Padding(
padding: const EdgeInsets.all(1.0),
child: IconButton(
icon: Icon(Icons.person_outline_sharp),
iconSize: 30,
onPressed: () {
// 검색 버튼을 눌렀을 때 실행되는 동작
},
color: Colors.black,
alignment: Alignment.topRight,
),
),
],
backgroundColor: Colors.white,
elevation: 0.0, //그림자
title: Text(
"Movie Views",
style: TextStyle(
fontSize: 35,
fontWeight: FontWeight.bold,
color: Colors.black,
),
),
),
body: GestureDetector(
//not focus, keyboard hide
onTap: () {
hideKeyboard(context);
},
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(15.0),
child: TextField(
decoration: InputDecoration(
hintText: "영화 제목을 검색해주세요.",
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(5),
borderSide: BorderSide(
color: Color.fromARGB(255, 85, 88, 241),
width: 20.0,
),
),
suffixIcon: IconButton(
icon: Icon(Icons.search),
onPressed: () {},
),
contentPadding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 20,
),
),
),
),
// Expanded(
// child: ListView.builder(
// itemCount: dataList.length,
// itemBuilder: (context, index) {
// return ListTile(
// title: Text(dataList[index]['category']),
// //subtitle: Image(image: dataList[index]['imgUrl'])
// subtitle: Image.network(dataList[index]['imgUrl']),
// );
// },
// )),
Expanded(
child: ListView.builder(
itemCount: dataList.length,
itemBuilder: (context, index) {
return Stack(
children: [
SizedBox(
child: Image.network(
dataList[index]['imgUrl'],
fit: BoxFit.cover,
width: double.infinity,
height: double.infinity,
),
),
Positioned(
top: 50,
left: 20,
child: Text(
dataList[index]['category'],
style: TextStyle(
fontSize: 24,
fontWeight: FontWeight.bold,
color: Colors.white,
),
),
),
],
);
},
))
],
)));
}
}
