phoenixsky / fun_android_flutter Goto Github PK
View Code? Open in Web Editor NEW👿👿👿👿👿玩Android客户端Flutter版本。Provider的最佳实践.DarkMode、多色彩主题、国际化、切换字体、优美动画
👿👿👿👿👿玩Android客户端Flutter版本。Provider的最佳实践.DarkMode、多色彩主题、国际化、切换字体、优美动画
可以打印下didUpdateWidget 方法,会发现很多没必要的build,同时也会创建新的viewmodel
希望大佬:1、在设置里面加个当前版本号的展示,不然现在都不知道自己使用的当前是什么版本;2、加个APP内部版本更新功能,这样大佬增加了新功能发布了新版本,我们也好及时更新、跟进学习!
我在首页点击收藏A文章,然后去我的->收藏下面取消收藏,但是首页A文章的收藏状态没有发生改变,还是显示收藏状态,这个bug困扰了我很久,找不出解决方法,除非取消with AutomaticKeepAliveClientMixin这句代码,但是如果不保留状态,用户体验会非常糟糕,希望大神可以解决一下这个bug
我也不确定到底哪个好,请指教,多谢
ios的状态栏在非暗黑色的时候字体为黑色好一点,不然后的界面背景为白色的时候看不见时间与其他图标
home_page.dart里面SliverToBoxAdapter是一个空的,在这里有什么作用,我偿试删除了,好像也没发现问题
首先感谢大大的贡献给我提供很大的帮助!
页面的TabBar,当点击间隔的tab时,会出现将间隔的tab也一起请求。
比如间隔两个tab,那么就会携带两个tab的request请求
1.flutter_webview_plugin社区插件不是widget,造成无法在其组件上定制某些按钮
2.resize时有250毫秒的延迟(�作者解释说为了避免同时有多个resize的请求)
_animation.addStatusListener((status) {
if (status == AnimationStatus.completed) {
_logoController.reverse();
} else if (status == AnimationStatus.dismissed) {
_logoController.forward();
}
});
_logoController.forward();
为什么需要再做判断?
_countdownController =
AnimationController(vsync: this, duration: Duration(seconds: 4));
_countdownController.forward();
这里不是已经开始了吗?
求告知,谢谢
你好 感谢你提供这么优秀的库,但是我在学习过程中有些疑惑,希望不吝赐教。
我暂且想的是在入口时,是创建 provider
,对应的代码如下
fun_android_flutter/lib/config/provider_manager.dart
Lines 13 to 19 in 0047ce3
但是我在 flutter
的文档中 发现了下面的注释
/// - DO create a new [ChangeNotifier] inside `builder`.
/// ChangeNotifierProvider(
/// builder: (_) => new MyChangeNotifier(),
/// child: ...
/// )
/// - DON'T use [ChangeNotifierProvider.value] to create your [ChangeNotifier].
/// ChangeNotifierProvider.value(
/// value: new MyChangeNotifier(),
/// child: ...
/// )
为了实验,我把我的部分代码改成了
List<SingleChildCloneableWidget> independentServices = [
ChangeNotifierProvider(builder: (_) => ThemeModel()),
ChangeNotifierProvider(builder: (_) => LocaleModel()),
···
];
发现也好用,然后我就懵了😆
我的问题是,怎么用才是更合理的,谢谢
华为手机 android 8.1 总是报这个错,
MemoryLeakMonitor.jar is not exist!
Could not get cmap table size!
[ERROR:flutter/shell/gpu/gpu_surface_gl.cc(58)] Failed to setup Skia Gr context. // 出结果
添加 --enable-software-rendering参数运行
flutter run --enable-software-rendering
能够跑起来,但是杀死应用再启动会崩溃,或者点击 ListView的item 也会崩溃,报错信息依然如故。请问有没有好的办法解决。
` @OverRide
onResponse(Response response) {
debugPrint('---api-response--->resp----->${response.data}');
//response 换了API,报文格式不一样,发现response没有反序列化,是什么原因,他在哪里处理的反序列化
Map<String, dynamic> user = json.decode(response.data);
debugPrint(user['msg'].toString());
ResponseData respData = ResponseData.fromJson(response.data);
if (respData.success) {
response.data = respData.data;
return http.resolve(response);
} else {
if (respData.code == -1001) {
// 如果cookie过期,需要清除本地存储的登录信息
// StorageManager.localStorage.deleteItem(UserModel.keyUser);
throw const UnAuthorizedException(); // 需要登录
} else {
throw NotSuccessException.fromRespData(respData);
}
}
}
}`
splash页面后的广告页,没有办法动态获取,是否需要展示,这块我觉得是需要升级的
大佬能写个flutter支持蓝牙打印小票的吗?
Finished with error: Please review your Gradle project setup in the android/ folder.
openandroid module in android studio
这个选项是灰色的!
open ios module in xcode
这个选项是可以用的!
大佬,能不能在登录或者不是列表那种网络请求中加入显示loading框的功能,现在使用setBusy()和setIdle()设置状态,回调的时候不太正常
您好,有个问题就是把这个项目down下来之后,修改部分代码,运行后,有变化,然后杀掉app之后,点击图标进入。又变回之前的代码样式了、想请问一下是有啥问题么
0.1.5版本升级到0.1.10,安装时签名与上版本不一致
Compiler message:
lib/flutter/dropdown.dart:12:33: Error: Getter not found: 'kMinInteractiveDimension'.
const double _kMenuItemHeight = kMinInteractiveDimension;
下完项目跑起来之后,体系页面上下滑动有点卡顿,公众号页面,进入具体内容页面,也有比较明显的改动,手机是小米8se。有别的同学有类似情况吗,了解主要是什么原因吗?
看您的项目里有黑暗模式的设置,怎么能和ios13中的黑暗模式关联起来呢?
Flutter 1.12.13+hotfix.5 • channel stable
Dart 2.7.0
_selectedIndex =4;
currentIndex ==_selectedIndex;
当_selectedIndex=4;
BottomNavigationBarItem 切换了但是默认加载的页面还是首页,需要点击一次才能加载我的页面
使用适配屏幕后,在其他设备上键盘弹出的高度会出现仍然遮挡住部分Textfield的情况
Compiler message:
lib/ui/page/favourite_list_page.dart:11:1: Error: 'SliverAnimatedListState' is imported from both 'package:flutter/src/widgets/animated_list.dart' and 'package:fun_android/flutter/refresh_animatedlist.dart'.
import 'package:fun_android/flutter/refresh_animatedlist.dart';
请问遇到过类似的情况吗?
Error running Gradle:
ProcessException: Process "/Users/***/Documents/ProjectCode/fun_android_flutter/android/gradlew" exited abnormally:
Command: /Users/***/Documents/ProjectCode/fun_android_flutter/android/gradlew app:properties
Please review your Gradle project setup in the android/ folder.
gradle-wrapper.properties文件内容如下:
#Fri Jun 23 08:50:38 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-5.4.1-all.zip
gradle-5.4.1-all.zip这个版本跟我其它项目的版本不一样,我应该怎么更新这个才行呢?
环境:gradle6.0.1,flutter1.12最新稳定版
报错信息:
Compiler message:
/F:/flutter1.12/.pub-cache/hosted/pub.flutter-io.cn/cached_network_image-1.1.1/lib/src/cached_network_image_provider.dart:42:24: Error: The method 'CachedNetworkImageProvider.load' has fewer positional arguments than those of overridden method 'ImageProvider.load'.
ImageStreamCompleter load(CachedNetworkImageProvider key) {
^
/F:/flutter1.12/packages/flutter/lib/src/painting/image_provider.dart:403:24: Context: This is the overridden method ('load').
ImageStreamCompleter load(T key, DecoderCallback decode);
^
Target kernel_snapshot failed: Exception: Errors during snapshot creation: null
build failed.
FAILURE: Build failed with an exception.
Compiler message:
../../flutter/.pub-cache/hosted/pub.flutter-io.cn/flare_flutter-1.5.5/lib/flare.dart:585:14: Error: The method 'FlutterActor.makeShapeNode' has fewer positional arguments than those of overridden method 'Actor.makeShapeNode'.
ActorShape makeShapeNode() {
^
../../flutter/.pub-cache/hosted/pub.flutter-io.cn/flare_dart-1.4.7/lib/actor.dart:68:14: Context: This is the overridden method ('makeShapeNode').
ActorShape makeShapeNode(ActorShape source) {
^
Compiler failed
以上是编译日志,我再运行flutter run编译时,遇到了这个问题,但是我这边不知道如何解决,恳请大大帮忙看一下。
每次页面切换后,重新回去,会反复调用build,两三次,感觉不太对啊。。。
CategoryDropdownWidget下的DropdownButton第一次点击,是从上往下滑出的,点过一次了,在点就是从中间往上滑出的
复现步骤:
就会弹出错误:
════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following assertion was thrown building InputDecorator(decoration: InputDecoration(hintText: "密码", hintMaxLines: "1", prefixIcon: Icon(IconData(U+0E899), size: 22.0, color: Color(0xffc82d57)), suffixIcon: LoginTextFieldSuffixIcon, errorBorder: UnderlineInputBorder(), focusedBorder: UnderlineInputBorder(), focusedErrorBorder: UnderlineInputBorder(), disabledBorder: UnderlineInputBorder(), enabledBorder: UnderlineInputBorder(), border: UnderlineInputBorder(), alignLabelWithHint: false), isFocused: false, isEmpty: true, dependencies: [MediaQuery, _InheritedTheme, _LocalizationsScope-[GlobalKey#484f1], Directionality], state: _InputDecoratorState#0db72(tickers: tracking 2 tickers)):
'package:flutter/src/services/text_input.dart': Failed assertion: line 745 pos 12: 'attached': is not true.
When the exception was thrown, this was the stack:
#2 TextInputConnection.setStyle (package:flutter/src/services/text_input.dart:745:12)
#3 EditableTextState.didUpdateWidget (package:flutter/src/widgets/editable_text.dart:1162:29)
#4 StatefulElement.update (package:flutter/src/widgets/framework.dart:4396:58)
#5 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
#6 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
...
════════════════════════════════════════════════════════════════════════════════════════════════════
════════ (2) Exception caught by widgets library ═══════════════════════════════════════════════════
'package:flutter/src/services/text_input.dart': Failed assertion: line 745 pos 12: 'attached': is not true.
The relevant error-causing widget was:
TextFormField file:///F:/guotie/ipfs-pool/fun_android_flutter/lib/ui/page/user/login_field_widget.dart:61:45
════════════════════════════════════════════════════════════════════════════════════════════════════
════════ (3) Exception caught by widgets library ═══════════════════════════════════════════════════
Duplicate GlobalKey detected in widget tree.
════════════════════════════════════════════════════════════════════════════════════════════════════
还有部分操作会提示 not attached,没有仔细研究如何复现。
Flutter app 在ios平台设置启动图以后启动app 在启动页和splash页之间为什么会有短暂的黑屏
另,StructurePage中ViewStateWidget(onPressed: model.initData())应该为 ViewStateWidget(onPressed: model.initData)
好像下载不了哦。
看了代码有个初始化的问题想咨询一下,
flutter的build是同步方法,所以在widget树构建过程中不允许出现异步返回值的操作,同时也不能更新provider,由于我运行示例程序一直报错,所以我就自己按照示例简化写了一个provider的实现,发现其实是在initState方法里调用了同步的initData方法,并且在initData方法里又去异步调用了获取数据的方法,这样如果接口比较慢这个initState方法一直执行不完,界面渲染也就会有延迟,我模拟了一个休眠5秒,导致界面5秒后才会显示出来,不知道是我写错了,还是示例程序也是这么考虑的,另外有没有flutter在界面初始化的时候初始化数据的方法呢?
当设置语言为中文时,表单hintText文字无法与光标同时居中,输入的文字会偏上一点
如果设置语言为中文时,则没有问题
我的收藏列表页面,点击item后跳转的页面报错
去除 ViewState中的unAuthorized, 并将unAuthorized作为一种Error状态是不是更合理一点
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.