问题标签 [dart-ui]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
402 浏览

flutter - 计算由 Path 包围的区域与 Flutter 中特定点之间的距离

根据路径的文档:

据我了解,这意味着当Path对象关闭时,它会围绕一个二维区域。

当用户单击屏幕上的某个点时,我想计算用户单击的点与路径包围的区域之间的距离。我得到了用户通过 GestureDetector/onPanDown 点击的观点,但我无法弄清楚如何计算到路径的距离(或路径包围的区域)。Path 提供的所有函数似乎都返回 void 或 bool 但没有距离。

想象一下:(当我将它绘制到屏幕上时,红色是 Path 对象,X 应该是我的用户单击的位置;绿线表示的两者之间的距离是我感兴趣的) 在此处输入图像描述

如何计算距离?

0 投票
0 回答
190 浏览

flutter - Flutter:更改比例后重绘Custompaint线

我正在使用 Flutter 创建一个笔记应用程序,并使用 CustomPainter 作为绘图部分。为了获得更好的性能,CustomPaint 会在一些 Lines 之后转换为图像。现在图像的问题是放大时,线条(现在是图像)非常像素化。现在我解决这个问题的第一个想法是在缩放后重新绘制线条。

但是,如果它们的分辨率仍然很差,我该如何正确地重绘它们呢?另外,是否可以只重绘当前在屏幕上可见的线条?

一切都用提供约束+像素比(比例)的布局构建器包装:

我是如何进行缩放的:

我的 CustomPaint 出现在 Transform 小部件之后:

使用 custpmpaint 到图像转换器的片段(绘制的线被转换为图像以节省性能):

带有图像抽屉的 Custompaint 部分:

(对不起大量的代码)

如果您知道更好的方法,请告诉我。

这是问题的视频

0 投票
1 回答
29 浏览

flutter - 在 chrome 或 macos 上运行 Flutter 应用程序时找不到 ui.TextLeadingDistribution

在使用 dart migrate 后尝试在 chrome 或 macos 上运行我的应用程序时,我在控制台中收到以下错误:

它在 Android / iPhone 模拟器上运行良好。
我尝试了以下方法,但都是徒劳的:

  1. 颤振 2.0.6(稳定)
  2. 颤振 2.5.3(稳定)
  3. 颤振医生显示没有错
  4. 颤振清洁,颤振 pub 缓存修复,颤振 pub 获取
  5. 重启 VSCode
0 投票
0 回答
137 浏览

image - Flutter:如何将 ui.Image 编码为 jpeg?

我需要做类似的事情adapter。我收到ui.Image作为in参数,我应该发送到outUint8List。现在我发现如何ui.Image转换为png数据,但它占用了非常大的内存大小。

例如,如果我在磁盘上获取 2,6 MB 文件,将其读取为ui.Image,然后尝试将其转换回数据,toByteData(.png)结果我在磁盘上有 11.45 MB。

我的代码

在 emumImageByteFormat我只看到rawRgba,rawUnmodifiedpng. 那么我如何转换ui.Image为 jpeg 数据呢?有什么建议么?

0 投票
1 回答
51 浏览

flutter - 使用画布颤动将图像拟合到一个圆圈内

代码如上。当然,我今天刚刚了解了画布,我一直在尝试拼凑代码,这些代码将适合一个圆圈内的图像用作地图的标记。然而,生成的图像如下所示:

不合适的图像

我需要它完全适合。

0 投票
0 回答
30 浏览

dart - dart中没有构造函数的类的扩展方法?

我已经在很多 dart 东西上编写了扩展方法,但是当我尝试从 dart:ui 执行 FontWeight 时,它不被认为是合法的。

然后

linter 给了我这个错误:

没有为“FontWeight”类型定义吸气剂“medium”。尝试导入定义“medium”的库,将名称更正为现有 getter 的名称,或者定义一个名为“medium”的 getter 或字段。

所以我认为静态的东西把它搞砸了,所以我在没有静态的情况下尝试了它并遇到了同样的问题。

但是看看这个:

现在我得到两个错误:

'FontWeight' 类没有默认构造函数。尝试使用“FontWeight”中定义的命名构造函数之一

当然,但我也得到了这个:

无法通过实例访问静态字段“medium”。尝试使用类“FontWeightExtension”来访问该字段。

所以它知道扩展方法,但我不能使用它FontWeight

有没有办法解决这个问题?如何在没有构造函数的类上编写扩展方法?

0 投票
0 回答
38 浏览

flutter - 在 alertDialog 中点击 TextField 会使我的应用程序崩溃

我试图在 AlertDialog 中显示一个 TextField,但是当我尝试点击 TextField 时我的应用程序崩溃了。

这是我的代码:

下拉工作没有任何问题。同样,当我单击按钮时,我会在 TextField 中获得文本。

错误信息

  • W/IInputConnectionWrapper(7294):非活动 InputConnection 上的 getExtractedText

  • W/IInputConnectionWrapper(7294):非活动 InputConnection 上的 getTextBeforeCursor

  • W/IInputConnectionWrapper(7294):非活动 InputConnection 上的 getExtractedText

  • W/IInputConnectionWrapper(7294):非活动 InputConnection 上的 getTextBeforeCursor

  • E/SpannableStringBuilder(7294):SPAN_EXCLUSIVE_EXCLUSIVE 跨度不能有零长度

  • I/chatty (7294): uid=10582(com.example.blog) 相同的 2 行

  • E/SpannableStringBuilder(7294):SPAN_EXCLUSIVE_EXCLUSIVE 跨度不能有零长度

  • D/ForceDarkHelper(7294):updateByCheckExcludeList:pkg:com.example.blog 活动:com.example.blog.MainActivity@10f2b63

  • D/EgretLoader(7294):EgretLoader(上下文上下文)

  • D/EgretLoader(7294):上下文不是活动

  • D/ForceDarkHelper(7294):updateByCheckExcludeList:pkg:com.example.blog 活动:com.example.blog.MainActivity@10f2b63

  • D/AndroidRuntime(7294):关闭虚拟机

  • E/AndroidRuntime(7294):致命异常:主要

  • E/AndroidRuntime(7294):进程:com.example.blog,PID:7294

  • E/AndroidRuntime(7294):java.lang.NullPointerException:尝试从空对象引用上的“android.view.WindowManager$LayoutParams android.view.ViewRootImpl.mWindowAttributes”字段读取

  • E/AndroidRuntime(7294):在 android.view.inputmethod.InputMethodManager.startInputInner(InputMethodManager.java:1626)

  • E/AndroidRuntime(7294):在 android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1870)

  • E/AndroidRuntime(7294):在 android.view.inputmethod.InputMethodManager.isActive(InputMethodManager.java:1184)

  • E/AndroidRuntime(7294):在 io.flutter.plugins.webviewflutter.InputAwareWebView$1.run(InputAwareWebView.java:195)

  • E/AndroidRuntime(7294):在 android.os.Handler.handleCallback(Handler.java:914) E/AndroidRuntime(7294):在 android.os.Handler.dispatchMessage(Handler.java:100)

  • E/AndroidRuntime(7294): 在 android.os.Looper.loop(Looper.java:225)

  • E/AndroidRuntime(7294): 在 android.app.ActivityThread.main(ActivityThread.java:7564)

  • E/AndroidRuntime(7294):在 java.lang.reflect.Method.invoke(本机方法)

  • E/AndroidRuntime(7294):在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)

  • E/AndroidRuntime(7294):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

  • D/OOMEventManagerFK(7294):checkEventAndDumpForJE:0

  • I/Process (7294):发送信号。PID:7294 SIG:9

    失去与设备的连接。

0 投票
0 回答
9 浏览

flutter - 颤振 | BackdropFilter() 有 ui 问题

我不知道为什么一个 Container(左侧的红色)会受到 BackdropFilter 的“影响”,而绿色的(不是颜色特定的)不会(或者:我什至不知道那里发生了什么? ),请帮助我或更正我的代码:)

这是我得到的结果(用不同的显示器检查):

谷歌浏览器窗口

此页面的代码:

0 投票
1 回答
38 浏览

flutter - Gesture Detector for quadrants of a circle

I have a circle where each quadrant is mapped to a different condition. Each quadrant will, when tapped, result in a different output/view for the user. From my understanding, I should use Gesture Detector for this. I have this circle both as an svg and I created one using Paint but I'm lost as to how to map the quadrants to Gesture Detector. It seems like the only reliable way to do this would be to make the quadrants of the circle separate objects and then wrap them in a Gesture Detector. Is this correct? If so, is it more efficient to do this in Paint or with an image (or I guess if they were separate objects, it would be 4 images). What are the other (reliable/consistent given varying screen sizes etc) options to solve for this?

circle