Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'package:flutter/material.dart';
- import 'package:http/http.dart' as http;
- import 'dart:async';
- import 'dart:convert';
- import 'models/post_class.dart';
- void main() {
- runApp( MaterialApp(
- debugShowCheckedModeBanner: false,
- home: MyApp(),
- ));
- }
- class MyApp extends StatefulWidget {
- @override
- _State createState() => _State();
- }
- class _State extends State<MyApp> {
- var page = 1;
- ScrollController _scrollController = ScrollController();
- Future<List<Post>> fetchPost() async {
- // limit++;
- var data = await http.get("https://chsknews.com/wp-json/wp/v2/posts?fields=title,date,link,x_featured_media&per_page=10&page="+"$page");
- var decoded = json.decode(data.body);
- List<Post> posts = List();
- decoded.forEach((post) {
- posts.add(Post(post["title"]["rendered"],post["link"],post["x_featured_media"],post["date"]));
- });
- setState(() {
- _scrollController.addListener(() {
- if(_scrollController.position.pixels == _scrollController.position.maxScrollExtent){
- }
- });
- });
- return posts;
- }
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: AppBar(
- title: Text('Feed Test'),
- ),
- body: Center(
- child: Container(
- padding: EdgeInsets.all(10.0),
- child: FutureBuilder(
- future: fetchPost(),
- builder: (context,snapshot){
- return snapshot.data == null ? CircularProgressIndicator() :
- ListView.builder(
- controller: _scrollController,
- itemCount: snapshot.data == null ? 0 : snapshot.data.length ,
- itemBuilder: (context,index){
- return GestureDetector(
- onTap: (){
- Navigator.push(
- context,
- MaterialPageRoute(builder: (context) => FirstScreen()),
- );
- },
- child:
- Card(
- child: Padding(
- padding: EdgeInsets.all(5.0),
- child: Column(
- children: <Widget>[
- Row(
- children: <Widget>[
- Image.network(snapshot.data[index].imgUrl,width:80.0),
- Expanded(
- child: Padding(
- padding: EdgeInsets.only(left: 10.0),
- child: Column(
- children: <Widget>[
- Text(
- snapshot.data[index].title,style:TextStyle(fontSize: 18.0,color: Colors.black),
- ),
- ],
- )
- )
- )
- ],
- ),
- ],
- )
- )
- ) ,
- );
- },
- );
- },
- ),
- ),
- )
- );
- }
- }
- class FirstScreen extends StatelessWidget {
- static String html = '<h1>This is heading 1</h1> <h2>This is heading 2</h2><h3>This is heading 3</h3><h4>This is heading 4</h4><h5>This is heading 5</h5><h6>This is heading 6</h6><img alt="Test Image" src="https://i.ytimg.com/vi/RHLknisJ-Sg/maxresdefault.jpg" /><p>This paragraph contains a lot of lines in the source code, but the browser ignores it.</p>';
- // Convert html to Markdown
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: AppBar(
- title: Text('First Screen'),
- ),
- body: Center(
- child: Column(
- children: <Widget>[
- RaisedButton(
- child: Text('Launch screen'),
- onPressed: () {
- Navigator.pop(context);
- },
- ),
- ],
- )
- ),
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement