• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Flutter 게시판 ListView 이미지

ListView 이미지

  • 이 주제에는 3개 답변, 2명 참여가 있으며 codingapple2 년 전에 전에 마지막으로 업데이트했습니다.
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 글쓴이
  • #93302

    김대연
    참가자
    이미지 피커가 있는 버튼을 누르면 같은 페이지에 있는 리스트뷰에 이미지를 보여주는 기능을 구현하고 있습니다. 
    
    버튼을 누를때 setState 함수내에서
     따로 만들어둔 리스트에 이미지 경로를 넣고, 따로 만든 ListView빌더 위젯을 넣어주는 식으로 구현했는데 안되네요 
    
    
    onPressed: () async {
      final picker = ImagePicker();
      var image = await picker.pickImage(source: ImageSource.gallery);
      if (image != null) {
        setState((){
          useImage = File(image.path);
          widget.a.add(useImage); //이미지경로를 기존 만들어둔 리스트 a 에 넣어줌 
          Picture(); // 따로 만들어둔 ListView 위젯
         
     });
    //따로 만들어둔 ListView 위젯
    
    
    class Picture extends StatefulWidget {
      Picture({Key? key, this.a}) : super(key: key);
      var a;
      @override
      State<Picture> createState() => _PictureState();
    }
    class _PictureState extends State<Picture> {
      @override
      Widget build(BuildContext context) {
        return ListView.builder(
            itemBuilder: (BuildContext ctx, int idx) {
              return Container(
                width: 30, height: 30, child:
                  widget.a[idx].runtimeType == String
                  ? Image.network(widget.a[idx])
                  : Image.file(widget.a[idx]),
              );
            },
          itemCount: widget.a != null ? (widget.a.length) : 0, //widget.pictureList.length,
            shrinkWrap: true,
            scrollDirection : Axis.horizontal
        );
      }
    }
    
    
    
    #93346

    codingapple
    키 마스터
    state 변경하려면 state만든 곳에서 state변경해주는 함수 만들고
    그걸 자식 위젯으로 전송해서 자식위젯은 그 함수 써야합니다
    #93429

    김대연
    참가자
    그러면 현재 코드가 리스트뷰와 이미지피커 버튼이 메인위젯 내에 동급으로 있는데 
    리스트뷰와 이미지피커 버튼을 부모자식관계로 만든후에 state를 다루면 될까요?
    #93469

    codingapple
    키 마스터
    그럼 메인위젯에 state만들고 state변경함수 만들고 
    각 필요한 위젯에 보내주기만 하면 될듯요
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠