2 글 보임 - 1 에서 2 까지 (총 2 중에서)
-
글쓴이글
-
2023년 3월 16일 01:06 #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('로딩중임'); } } }
-
글쓴이글
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
- 답변은 로그인 후 가능합니다.