找回密码
 立即注册
搜索
楼主: kll85757

[软件] 建个flutter踩坑交流楼

[复制链接]
头像被屏蔽
     
 楼主| 发表于 2021-7-11 01:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2021-7-11 16:17 | 显示全部楼层
用不会协程  读懂python的 eventlet源码就行了
协程都差不多的,py的eventlet比较好读


正儿八经写flutter还是要会基本的app原生开发的,很多sdk支付什么的都没有flutter版
支付之类的sdk都接不上 挣个蛋的钱

回复

使用道具 举报

     
发表于 2021-7-12 10:10 来自手机 | 显示全部楼层
13号 发表于 2021-7-10 21:51
Flutter的Nativagor.push函数也是返回一个future的。

如果你每次pop之后都需要刷新,那么在push的那个页 ...

我尝试过寻找刷新的函数,但是找不到,这个dereload()放在函数里好像也报错了
回复

使用道具 举报

     
发表于 2021-7-12 10:31 | 显示全部楼层
本帖最后由 13号 于 2021-7-12 10:33 编辑
EKVIN 发表于 2021-7-12 10:10
我尝试过寻找刷新的函数,但是找不到,这个dereload()放在函数里好像也报错了 ...

我瞎写的。。。 doReload()意思是你得自己在这里做点事刷新。。。

具体doReload()该咋写要按照你的页面逻辑自己弄。。。
比如如果这是个网络请求的,你可以重新发起网络请求,在请求结束后设置数据(调用setState),页面自己就刷新了。。。

当然,你可以直接 setState(() {});  但是感觉这样没有意义啊。
Flutter在一般情况下都是你设置数据,数据导致了页面对应做出了渲染。 所以一般不搞直接刷新,因为如果你数据没变化,刷新也就没意义了。

回复

使用道具 举报

     
发表于 2021-7-12 11:01 | 显示全部楼层
13号 发表于 2021-7-12 10:31
我瞎写的。。。 doReload()意思是你得自己在这里做点事刷新。。。

具体doReload()该咋写要按照你的页面逻 ...

是一个网络请求。
我是打算实现这样的功能:
在帖子的内容页面点击一个按钮,用Navigator.push到回复框界面。
输入完回复内容之后点击发送,然后用Navigator.pop回到原来的帖子内容页面。
这个时候帖子会刷新一次重新发送网络请求,把回复内容之后的帖子内容展示。
我在构建帖子内容页面的时候,对每个回复是采用listview构造的,所以我就不太清楚如何再次刷新一次数据
回复

使用道具 举报

     
发表于 2021-7-12 11:33 | 显示全部楼层
好好看下文档关于setState的说法吧。
感觉写个function专门去取数据,然后取完之后setState,让页面渲染。
我猜你这个是按照官方文档写的,但你这个比官方文档这个略微复杂些。

建议搞两个state,  一个status, 表示现在是不是在fetch, 一个response,是正式的返回的数据。
然后搞个方法,直接fetch(), 成功了之后修改status和reponse, 界面对应做渲染,这样也不需要FutureBuilder了。
Navigator.push这里按上面做的, 直接await Navigator.push;  fetch(), 就可以了。
回复

使用道具 举报

     
发表于 2021-7-15 21:12 | 显示全部楼层
13号 发表于 2021-7-12 11:33
好好看下文档关于setState的说法吧。
感觉写个function专门去取数据,然后取完之后setState,让页面渲染。 ...

恩,这个功能不是很要紧,我打算放一放
那能不能问问大佬,对于图文并排该怎么弄?
比如说,我从论坛的API获取了一大串字符串数据,其中夹杂着图片和文字。形式如同这样

那怎么在flutter中识别出这串字符是图片的地址,然后用flutter去渲染图片,替换原来的位置?
达到图文混排的效果?我想到用正则表达式去做,但不是很清楚怎么在text中去识别然后用图片替换
回复

使用道具 举报

     
发表于 2021-7-15 21:21 | 显示全部楼层
用过 React Native
在框架本身的问题之外 iOS 和 Android 交互模式的差别 是更需要考虑的问题
别迷信跨平台
回复

使用道具 举报

     
发表于 2021-7-15 22:04 | 显示全部楼层
本帖最后由 13号 于 2021-7-15 22:06 编辑
EKVIN 发表于 2021-7-15 21:12
恩,这个功能不是很要紧,我打算放一放
那能不能问问大佬,对于图文并排该怎么弄?
比如说,我从 ...

  
  1. import 'package:html/parser.dart' show parse;

  2. extension CapExtension on String {
  3.   String get inCaps => '${this[0].toUpperCase()}${this.substring(1)}';
  4.   String get allInCaps => this.toUpperCase();
  5. }

  6. extension DocumentParsing on String {
  7.   String get contentPreview {
  8.     RegExp exp = RegExp(r"<[^>]*>", multiLine: true, caseSensitive: true);
  9.     return replaceAll(exp, '').replaceAll('\n', ' ').trim();
  10.   }

  11.   String get imgPreview {
  12.     var doc = parse(this);
  13.     var img;
  14.     try {
  15.       img = doc.querySelector("img");
  16.     } catch (e) {
  17.       return null;
  18.     }
  19.     if (img == null) return null;
  20.     RegExp re = RegExp(r"\.jpg|\.png|\.gif|\.jpeg|\.webp|\.bmp");
  21.     String srcLink = img.attributes['src'];
  22.     if (srcLink == null) return null;
  23.     if (srcLink.contains(re)) {
  24.       return srcLink;
  25.     }
  26.     return null;
  27.   }
  28. }
复制代码

刚好有个功能类似的函数。。。  不过是通过css query取html里的数据, 略微改改就能用了吧。。。
回复

使用道具 举报

     
发表于 2021-7-15 23:29 | 显示全部楼层
13号 发表于 2021-7-15 22:04
刚好有个功能类似的函数。。。  不过是通过css query取html里的数据, 略微改改就能用了吧。。。
...

是从来没见过的写法
我去研究一下这些语法。
这个,如果用dio获取数据,也是一样的吧?
回复

使用道具 举报

     
发表于 2021-7-15 23:31 | 显示全部楼层
EKVIN 发表于 2021-7-15 23:29
是从来没见过的写法
我去研究一下这些语法。
这个,如果用dio获取数据,也是一样的吧? ...
  1.   String get contentPreview {
  2.     RegExp exp = RegExp(r"<[^>]*>", multiLine: true, caseSensitive: true);
  3.     return replaceAll(exp, '').replaceAll('\n', ' ').trim();
  4.   }
复制代码

是这个代码进行替换吗。。
替换的时候甚至可以用widget替换?
回复

使用道具 举报

     
发表于 2021-7-15 23:40 | 显示全部楼层
EKVIN 发表于 2021-7-15 23:31
是这个代码进行替换吗。。
替换的时候甚至可以用widget替换?

我懒得一行行删所以一次性copy过来了。。。
你上面都说了感觉应该用正则来匹配图片,这里一共就两个方法, 你觉得那个看起来更像是通过正则搜索图片的?

评分

参与人数 1战斗力 +1 收起 理由
ryanz + 1 不能容忍如此热心老哥负鹅

查看全部评分

回复

使用道具 举报

     
发表于 2021-7-15 23:49 来自手机 | 显示全部楼层
13号 发表于 2021-7-15 23:40
我懒得一行行删所以一次性copy过来了。。。
你上面都说了感觉应该用正则来匹配图片,这里一共就两个方法, ...

哈哈哈,看起来像是第二个
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-12 09:54 , Processed in 0.137155 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表