import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
class Home extends StatefulWidget {
const Home({this.data,this.addData, super.key});
final data;
final addData;
@override
State<Home> createState() => _HomeState();
}
class _HomeState extends State<Home> {
final 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() {
scroll.addListener(() {
if(scroll.position.pixels == scroll.position.maxScrollExtent) {
getMore();
}
});
super.initState();
}
@override
Widget build(BuildContext context) {
print(widget.data);
if(widget.data.isNotEmpty) {
return ListView.builder(
controller: scroll,
itemCount: widget.data.length,
itemBuilder: (context, index) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Image.network(widget.data[index]['image']),
Text(widget.data[index]['user']),
Text(widget.data[index]['date']),
Text('종아요: ${widget.data[index]['likes'].toString()}'),
Text(widget.data[index]['content'])
],
);
},
);
} else {
return const Center(
child: CircularProgressIndicator(),
);
}
}
}
class _MainScreenState extends State<MainScreen> {
int tab = 0;
var data = [];
getData() async {
var result = await http
.get(Uri.parse('https://codingapple1.github.io/app/data.json'));
var result2 = jsonDecode(result.body);
setState(() {
data = result2;
});
}
addData(value) {
setState(() {
data.add(value);
});
}
@override
void initState() {
super.initState();
getData();
}