gpt4 book ai didi

Flutter - 图像重复仅缩放到屏幕尺寸,而不是父尺寸

转载 作者:IT王子 更新时间:2023-10-29 06:41:32 24 4
gpt4 key购买 nike

我有一个小部件,允许用户拖动比例来选择一个值,类似于基本的 slider 小部件,但“反转”,即值 slider 位置是固定的,您可以在背景中移动比例来调整值。
比例应该是无限的/无限的,我想我可以为此使用一个小图像 + ImageRepeat.repeatX。但这似乎只缩放到最初可见的屏幕,而不是实际的父级宽度。

有没有办法强制它填充整个父宽度或在 translate 后更新?

最小的例子:

import 'package:flutter/material.dart';

class SliderTest extends StatefulWidget {
@override
_SliderTestState createState() => _SliderTestState();
}

class _SliderTestState extends State<SliderTest> {
double foo = 100.0;

@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('SliderTest'),
),
body: new Builder(builder: (context) {
return new Center(
child: new Column(
children: <Widget>[
new Text("$foo"),
new GestureDetector(
onHorizontalDragUpdate: (v) { setState(() { foo += v.primaryDelta; }); },
child: new Container(
width: 5000.0,
height: 80.0,
color: Colors.green,
child: new Transform.translate(
offset: new Offset(foo, 0.0),
child: new Image.network('http://4d94o75ofvdkz8tr3396n8cn.wpengine.netdna-cdn.com/wp-content/uploads/Scale_4x.jpg', repeat: ImageRepeat.repeatX,)
)
)
)
],
),
);
})
);
}
}

Container 显然足够宽,从绿色背景颜色可以看出,但转换后的图像仅缩放到初始屏幕宽度,不会超过初始屏幕宽度。有没有办法在不使用巨大图像文件的情况下解决这个问题?

最佳答案

这其实是错误的。 repeat: ImageRepeat.repeatX 填充父元素,而不是屏幕。

问题是,即使您用 5000.0 定义了父级,它实际上并没有那个宽度。 As Column 为其子项添加了最大宽度约束。

您需要添加一个中间部件,内部可以更大。这可以是 OverflowBoxSingleChildScrolLView,甚至是 ConstrainedBox

关于Flutter - 图像重复仅缩放到屏幕尺寸,而不是父尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51231611/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com