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

home2 게시판 Flutter 게시판 스크롤 위치 파악하는 법과 더보기 요청 _ 숙제 부분

스크롤 위치 파악하는 법과 더보기 요청 _ 숙제 부분

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

    이성호
    참가자

    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 {
    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){
    var result2 = jsonDecode(result.body);
    setState((){
    data = result2;});
    }else{Text('데이터를 받아 올수 없음');}
    //Dio 패키지 찾아보기
    }
    @override
    void initState() {
    // TODO: implement initState
    super.initState();
    getData();

    }

    @override
    Widget build(BuildContext context) {

    return Scaffold(
    appBar: AppBar(
    title: Text('Instagram'),
    actions: [
    IconButton(onPressed: (){}, icon: Icon(Icons.add_box_outlined), iconSize: 30,)

    ],
    ),
    body: [Home(data : data), Text('샵페이지')]

    , //[FutureBuilder(future:data, builder:(){},~~
    bottomNavigationBar: BottomNavigationBar(
    showSelectedLabels: false,
    showUnselectedLabels: 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}) : super(key: key);
    final data;

    @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/more1.json'));
    var result2 = jsonDecode(result.body);
    widget.addData(result2);
    }

    @override
    void initState() {
    // TODO: implement initState
    super.initState();
    scroll.addListener(() {
    if (scroll.position.pixels == scroll.position.maxScrollExtent)
    getMore();
    });
    }

    @override

    Widget build(BuildContext context) {
    if (widget.data.isNotEmpty){
    return ListView.builder(
    itemCount: 3,
    controller: scroll,
    itemBuilder: (c,i){
    return Column(
    crossAxisAlignment: CrossAxisAlignment.start,
    children: [
    Image.network(widget.data[i]['image']),
    Text('좋아요 ${widget.data[i]['likes']}'),
    Text('글쓴이'),
    Text(widget.data[i]['content']),
    ]
    );
    });
    }else{
    return CircularProgressIndicator();
    }
    }
    }

    getMore() 부분에서 

    widget.addData(result2); 이부분이 에러가 납니다.

    어떻게 수정해야 할까요?

     

    #25801

    codingapple
    키 마스터

    무슨에러가 납니까

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 호 / 개인정보관리자 : 박종흠