GithubHelp home page GithubHelp logo

openflutter / flutter-notebook Goto Github PK

View Code? Open in Web Editor NEW
7.2K 461.0 1.2K 51.29 MB

FlutterDemo合集,今天你fu了吗

License: Apache License 2.0

Java 4.69% Objective-C 9.40% Dart 84.39% Ruby 1.12% Kotlin 0.19% Swift 0.21%
flutter-demo flutter

flutter-notebook's Introduction

You can select the language by pressing on the options between these

中文版 | English

flutter_notebook有什么

flutter_note_book有许多flutter相关功能demo的集合,它能够帮助您快速学习一些零碎的知识,本项目将会不定期更新。

如果您觉得有用的话可以Watch该项目,之后更新会自动通知您。

收集更多优秀样例

本项目大多为了提供一些问题的解决思路,如果您有更好的实现方式或者好的创意,欢迎提交PR!

如何下载单个项目

将单个项目下url复制粘贴到下面这个中,将会自动生成下载文件:

DownGit

目前包含以下demo:

官方控件系列

视图

功能

动画

优秀第三方库

状态管理

其他

常见问题

所有demo都最简化,尽量保证只与当前功能有关。每个demo文件代码在100行左右,十分适合新手阅读。

更多请进入mecury_project/example中寻找。

flutter-notebook's People

Contributors

vadaski avatar jemair avatar eightminuteyouth avatar caijinglong avatar renjingkai avatar hutcwp avatar foxsofter avatar cooperkong avatar jonahfang avatar gendseo avatar tanishdragonemperor avatar

Stargazers

1e93d avatar Bagus Indrayana avatar  avatar 蒲志斌 avatar  avatar apricityjin avatar  avatar 翟硕 avatar liutj avatar aV avatar Eliot avatar river.ylc avatar  avatar Sing avatar  avatar 黑咔嚓、 avatar 那片梧桐那片雨 avatar natkang avatar HooRang avatar wuwenjie avatar  avatar AlienDaniel avatar  avatar  avatar  avatar  avatar  avatar 稚荷坳 avatar hydrogen avatar 长安是常安 avatar  avatar  avatar zhjrate avatar 白羽 avatar  avatar  avatar Luke Wong avatar bileizhen avatar Zuyuan Zhang avatar  avatar  avatar arguskao avatar  avatar eee avatar 小鱼干 avatar Aiken avatar laoluo avatar luo avatar JK-JimmyKudo avatar  avatar  avatar 字母与数字 avatar  avatar  avatar KKECHO avatar npc avatar peng.lv avatar Ke avatar  avatar  avatar  avatar  avatar  avatar  avatar 一样有你 avatar  avatar Arthur avatar Hdi9k avatar  avatar asd-taka avatar whi avatar  avatar  avatar hikerell avatar Hassan Najm avatar Moliant avatar Nachiket Gohil avatar 星空菌 avatar meet_rust avatar 罗嘉烨 avatar Elbert Olson avatar  avatar lqbk avatar Li Xinwei avatar  avatar VirtualHotBar avatar aa0c avatar  avatar  avatar  avatar YYwishp avatar Lapytska Valentin avatar  avatar  avatar  avatar  avatar  avatar  avatar Zeroing avatar 多喝热水 avatar

Watchers

Xu avatar Stone Gao avatar 李振 avatar Marble Wu avatar soda avatar dcn01 avatar newboy avatar Jerry Jian avatar  avatar James Cloos avatar  avatar Kanybek Momukeev avatar MohsinAli avatar Leon avatar  avatar Alexander avatar xiangyutian avatar  avatar  avatar acelan avatar goodboy avatar Edward Xie avatar  avatar  avatar 心情过客 avatar  avatar Dadait avatar Gerardo avatar pure_water avatar Hao Li avatar Li Cong avatar  avatar Frank Xing avatar Landerqi avatar Reinhard Huang avatar Vanson avatar Wan Xiao (CN) avatar JiangXi avatar Ethan avatar Frank Young avatar Maughan avatar Lyan200 avatar Aliang775 avatar Lzning avatar 朱立志 avatar sunhang avatar melontaro avatar wzq avatar huangwenwei.com avatar  avatar  avatar  avatar 吴上阿吉 avatar  avatar  avatar mick avatar GupRain avatar ganld avatar 莫莫大船长 avatar sprite avatar cn1289 avatar Lyn avatar  avatar szfcwlr avatar  avatar  avatar Ren  Yu avatar  avatar mooc.dev avatar 陈永民 avatar intozhou avatar  avatar  avatar  avatar  avatar  avatar  avatar Jarvis avatar jiajia avatar  avatar  avatar  avatar  avatar Shibin Huang avatar manfye avatar  avatar XZF avatar Alex Choi avatar qunwei yang avatar cc2cc avatar  avatar  avatar guangzheng avatar IlhamTahir avatar xwh avatar Bear Xiong avatar  avatar  avatar Yu Sir avatar  avatar

flutter-notebook's Issues

一些项目缺少 AndroidManifest 文件, 比如说 flutter_widget_of_the_week

AndroidManifest.xml could not be found.
Please check D:\coding\flutter_projects\[OpenFlutter]Flutter-Notebook.git\mecury_project\example\flutter_widget_of_the_week\android\app\src\main\AndroidManifest.xml for errors.
No application found for TargetPlatform.android_x64.
Is your project missing an android\app\src\main\AndroidManifest.xml?
Consider running "flutter create ." to create one.

导入AndroidStudio报错

D:\flutterProject\Flutter-Notebook-master\Flutter-Notebook-master\mecury_project\example: no pubspec.yaml found

Sliver_Demo

Sliver_Demo 有两个。。第二个demo在哪儿呢。。找不到啊

Another exception was thrown: NoSuchMethodError: The getter 'bLoC' was called on null.

使用的scope的bloc,

class BlocProvider extends InheritedWidget{
  final CountBloc bLoC = CountBloc();

  BlocProvider({Key key, Widget child}) : super(key: key, child: child);

  @override
  bool updateShouldNotify(_) => true;

  static CountBloc of(BuildContext context) =>
      (context.inheritFromWidgetOfExactType(BlocProvider) as BlocProvider).bLoC;
}

移植到自己项目报错:

I/flutter: Another exception was thrown: NoSuchMethodError: The getter 'bLoC' was called on null.

screenshot_2019-02-27-13-10-37-600_add2flutter

有關於dispose方法

想請教您在 count_bloc 中的 dispose() 有把 subject 給close,
但是好像沒有人去呼叫這個 method ,這樣不會造成 Leak 嗎?

http.dart

找不到http.dart,然后我使用dio替代,结果报错,不清楚哪里出了问题,帮忙解决下,下拉刷新项目,代码如下

    Dio http = new Dio();
    final Response<String> response = await http.get('http://dog.ceo/api/breeds/image/random');
    if (response.statusCode == 200) {
      setState(() {
        images.add(json.decode(response.data)['message']);
      });
    } else {
      throw Exception('Failed to load images');
    }

BottomNavigationBar 加载最后list报错

flutter 版本version1.0

加上body: list[_currentIndex], 后
最后报这个错误:

I/flutter ( 3081): The following RangeError was thrown building BottomNavigationWidget(dirty, state:
I/flutter ( 3081): BottomNavigationWidgetState#5a077):
I/flutter ( 3081): RangeError (index): Invalid value: Valid value range is empty: 3
I/flutter ( 3081): When the exception was thrown, this was the stack:
I/flutter ( 3081): #0 List.[] (dart:core/runtime/libgrowable_array.dart:145:60)
I/flutter ( 3081): #1 BottomNavigationWidgetState.build (package:flutter_apptwo/bottom_navigation_widget.dart:33:17)

建议采用经典的counter 作为BLoC的例子

下面的例子是按照 https://www.didierboelens.com/2018/08/reactive-programming---streams---bloc/ 中的**设计的,解决了下列问题: a.提供通用的BLoC provider类;b.解决了BLoC dispose问题.
main.dart

import 'package:flutter/material.dart';

import './bloc_base.dart';
import './bloc_increment.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Streams Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: BlocProvider<IncrementBloc>(
        bloc: IncrementBloc(),
        child: CounterPage(),
      ),
    );
  }
}

class CounterPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final IncrementBloc bloc = BlocProvider.of<IncrementBloc>(context);

    return Scaffold(
      appBar: AppBar(title: Text('Stream version of the Counter App')),
      body: Center(
        child: StreamBuilder<int>(
            stream: bloc.outCounter,
            initialData: 0,
            builder: (BuildContext context, AsyncSnapshot<int> snapshot) {
              return Text('You hit me: ${snapshot.data} times');
            }),
      ),
      floatingActionButton: FloatingActionButton(
        child: const Icon(Icons.add),
        onPressed: () {
          bloc.incrementCounter();
        },
      ),
    );
  }
}

//EOP

bloc_increment.dart

import 'dart:async';

import './bloc_base.dart';

class IncrementBloc implements BlocBase {
  int _counter;

  //
  // Stream to handle the counter
  //
  StreamController<int> _counterController = StreamController<int>();
  StreamSink<int> get _inAdd => _counterController.sink;
  Stream<int> get outCounter => _counterController.stream;

  //
  // Stream to handle the action on the counter
  //
  StreamController _action = StreamController();
  //StreamSink get incrementCounter => _action.sink;

  //
  // Constructor
  //
  IncrementBloc() {
    _counter = 0;
    _action.stream.listen(_handleLogic);
  }

  incrementCounter() {
    _action.sink.add(null);
  }

  void _handleLogic(data) {
    _counter = _counter + 1;
    _inAdd.add(_counter);
  }

  void dispose() {
    _action.close();
    _counterController.close();
  }
}
//EOP

bloc_base.dart

import 'package:flutter/material.dart';

// Generic Interface for all BLoCs
abstract class BlocBase {
  void dispose();
}

// Generic BLoC provider
class BlocProvider<T extends BlocBase> extends StatefulWidget {
  BlocProvider({
    Key key,
    @required this.child,
    @required this.bloc,
  }) : super(key: key);

  final T bloc;
  final Widget child;

  @override
  _BlocProviderState<T> createState() => _BlocProviderState<T>();

  static T of<T extends BlocBase>(BuildContext context) {
    final type = _typeOf<BlocProvider<T>>();
    BlocProvider<T> provider = context.ancestorWidgetOfExactType(type);
    return provider.bloc;
  }

  static Type _typeOf<T>() => T;
}

class _BlocProviderState<T> extends State<BlocProvider<BlocBase>> {
  @override
  void dispose() {
    widget.bloc.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return widget.child;
  }
}
//EOP

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.