app_responsive 1.0.1 copy "app_responsive: ^1.0.1" to clipboard
app_responsive: ^1.0.1 copied to clipboard

A more simple and convenient responsive library. Help us build our project more quickly.

example/main.dart

import 'package:app_responsive/app_responsive.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return AppProvider(
      child: MaterialApp(
        title: 'App responsive Demo',
        theme: ThemeData(
          primarySwatch: Colors.blue,
          visualDensity: VisualDensity.adaptivePlatformDensity,
        ),
        home: ExamplePage(),
      ),
    );
  }
}

class ExamplePage extends StatefulWidget {
  @override
  State createState() => ExampleState();
}

class ExampleState extends IState<ExamplePage, ExampleController> {
  final ExampleController _controller = ExampleController();

  @override
  Widget buildChild(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("app responsive demo"),
      ),
      body: buildBody
          .load(
            refresh: true,
            loadMore: true,
          )
          .watch<PPage>()(context),
    );
  }

  Widget buildBody(BuildContext context) {
    return ListView.separated(
      padding: EdgeInsets.all(10),
      itemBuilder: (_, index) {
        return ListTile(title: Text(controller.data[index]));
      },
      separatorBuilder: (_, index) {
        return Divider(height: 1);
      },
      itemCount: controller.data.length,
    );
  }

  @override
  ExampleController get controller => _controller;
}

class ExampleController extends IController {
  List<String> data = [];

  @override
  Future<int> load(int page) async {
    final newData = await _loadData(page);
    return computeLoadingState(data, newData, page, total: 50);
  }

  Future<List<String>> _loadData(int page) async {
    await Future.delayed(Duration(seconds: 2));
    // if (page > 0) return [];

    return List<String>.generate(
      30,
      (index) => ((page - 1) * 50 + index + 1).toString(),
    );
  }
}
0
likes
95
pub points
0%
popularity

Publisher

unverified uploader

A more simple and convenient responsive library. Help us build our project more quickly.

Homepage

Documentation

API reference

License

unknown (LICENSE)

Dependencies

collection, flutter, provider, pull_to_refresh

More

Packages that depend on app_responsive