Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振创造无限屏幕_Flutter_Flutter Layout - Fatal编程技术网

Flutter 颤振创造无限屏幕

Flutter 颤振创造无限屏幕,flutter,flutter-layout,Flutter,Flutter Layout,我想象一种新的屏幕,我想用Flutter来做,因为它非常强大,可以快速平滑地渲染 我想实现一种无限大的屏幕,有一种正方形或区域,你可以进入其中。实际上就像一张地图(事实上不是无限的,但非常大),但我可以: 拖动和平移 放大和缩小 点击并按下屏幕的不同部分(正方形或其他) 我想象在我的小部件“map”上使用GestureDetector,在每个组件上结合transform,并在每次移动后刷新屏幕,或者用draw重新绘制每个组件,但我不确定这是最好的方法 如果你有任何想法,谢谢你的帮助 有趣的提

我想象一种新的屏幕,我想用Flutter来做,因为它非常强大,可以快速平滑地渲染

我想实现一种无限大的屏幕,有一种正方形或区域,你可以进入其中。实际上就像一张地图(事实上不是无限的,但非常大),但我可以:

  • 拖动和平移
  • 放大和缩小
  • 点击并按下屏幕的不同部分(正方形或其他)
我想象在我的小部件“map”上使用
GestureDetector
,在每个组件上结合
transform
,并在每次移动后刷新屏幕,或者用
draw
重新绘制每个组件,但我不确定这是最好的方法


如果你有任何想法,谢谢你的帮助

有趣的提议。我没有实现,毕竟,这取决于你,但我有一些指针

我想,转换可以通过两个嵌套的ListView轻松处理。一个滚动X,一个滚动Y方向<代码>滚动控制器可以查询各种信息

缩放一开始也相当容易:您可以将整个屏幕包装在
Transform.scale()
小部件中

您可以将每个
tappable
小部件包装在
GuestureDetector
中,查询它们的
RenderBox
以获取它们在屏幕上的本地或全局坐标位置,获取它们的大小

注意:在游戏中,有一个称为剪辑距离的概念。弄清楚如何在Flutter中实现这一点将是一个有趣的挑战。它允许你不渲染那些太小的小部件,你放大了很多,例如,让我知道它是如何进行的!好奇



除了“无限地图”,我已经实现了您要求的部分内容。 代码非常强大,所以我在一篇文章中描述了这些东西。 它允许:

  • 通过拖动移动地图
  • 在地图上放置新对象
  • 放大/缩小
  • 单击对象
.

使用可能是一种方法。可能正在使用该框中任何内容的offset.padding,并使用某种GridView在移动时渲染新的瓷砖。这大致符合“地图”的类比。