커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
과제 코드 중 오류질문
[왕초보] 플러터(Flutter)로 시작하는 앱개발 종합반 v0
1주차
북마크
박*한
댓글
9
추천
0
조회수
14
조회수
14
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


오류가 계속 발생하는대 어디 부분이 문제인지 모르곘습니다..


문제 부분과 수정방안 예시 부탁드립니다.







작성한 코드 및 에러 메세지

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,

                            ),

                          ),

                        ),

                      ],

                    );

                  },

                ))

              ],

            )));

  }

}




취소
 공유
취소
댓글 0
댓글 알림
나의얼굴