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

home2 게시판 Flutter 게시판 스크롤 위치 파악 및 더보기 관련 문의사항 드립니다.

스크롤 위치 파악 및 더보기 관련 문의사항 드립니다.

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #72417

    홍경환
    참가자
    현재 하기처럼 코딩이 작성되어 있는데 더보기 기능이 되지 않아 정확히 어떤 것이 문제인지 문의드립니다!
    
    addData의 경우 부모로부터 잘 받은 것 같은데.. 이상하게 더보기 기능이 발현되지 않습니다ㅠ
    
    
    
    import 'package:flutter/material.dart';
    import 'style.dart' as style;
    import 'package:http/http.dart' as http;
    import 'dart:convert';
    import 'package:flutter/rendering.dart';
    void main() {
      runApp(
          MaterialApp(
            theme: style.theme,
              home : MyApp()
          )
      );
    }
    class MyApp extends StatefulWidget {
      const MyApp({Key? key}) : super(key: key);
      @override
      State<MyApp> createState() => _MyAppState();
    }
    class _MyAppState extends State<MyApp> {
      var tab = 0;
      var data = [];
      addData(a){
        setState(() {
          data.add(a);
        });
      }
      getData() async {
        var result = await http.get(Uri.parse('https://codingapple1.github.io/app/data.json'));
        if(result.statusCode == 200){
        } else{
        }
        var result2 = jsonDecode(result.body);
        setState((){
          data = result2;
        });
      }
      @override
      void initState() {
        super.initState();
        getData();
      }
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('Insta'),
            actions: [
              IconButton(
                  icon: Icon(Icons.add_box_outlined),
                  onPressed: (){},
                  iconSize: 30,
              )
            ]
          ),
          body: [Home(data : data), Text('샵')]

    , bottomNavigationBar: BottomNavigationBar( showUnselectedLabels: false, showSelectedLabels: false, onTap: (i){ setState(() { tab = i; }); }, items: [ BottomNavigationBarItem(icon: Icon(Icons.home_outlined),label : '홈'), BottomNavigationBarItem(icon: Icon(Icons.shopping_bag_outlined), label: '샵'), ], ), );
      }
    }
    class Home extends StatefulWidget {
      const Home({Key? key, this.data, this.addData}) : super(key: key);
      final data;
      final addData;
      @override
      State<Home> createState() => _HomeState();
    }
    class _HomeState extends State<Home> {
      var scroll = ScrollController();
      getMore() async {
        var result = await http.get(Uri.parse('https://codingapple1.github.io/app/more2.json'));
        var result2 = jsonDecode(result.body);
        widget.addData(result2);
      }
      @override
      void initState() {
        super.initState();
        scroll.addListener( () {
          if(scroll.position.pixels == scroll.position.maxScrollExtent) {
            getMore();
          }
        });
      }
      @override
      Widget build(BuildContext context) {
        print(widget.data);
        if(widget.data.isNotEmpty) {
          return ListView.builder(itemCount: widget.data.length, controller: scroll, itemBuilder: (c, i) {
            return Column(
              children: [
                Image.network(widget.data[i]['image']),
                Container(
                  constraints: BoxConstraints(maxWidth: 600),
                  padding: EdgeInsets.all(20),
                  width: double.infinity,
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: [
                      Text('좋아요 ${widget.data[i]['likes']}'),
                      Text(widget.data[i]['date']),
                      Text(widget.data[i]['content']),
                    ],
                  ),
                )
              ],
            );
          });
        }
        else{
          return Text('로딩중임');
        }
      }
    }
    #72434

    codingapple
    키 마스터
    getMore 함수도 실행잘되나 그 근처에 print같은거 써봅시다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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