此bug报告属于哪个软件包?
two_dimensional_scrollables
你在哪些目标平台上看到了这个bug?
iOS
你是否已经升级了你的软件包?
是的
依赖项版本
- 无响应*
重现步骤
- 创建一个大于屏幕尺寸的TableView.builder
- 使用PageStorageKey作为键参数
- 滚动到一个随机位置
- 使用按钮将TableView从ViewTree中移除
- 使用按钮将TableView重新添加到ViewTree中
预期结果
TableView应该与之前具有相同的垂直和水平偏移。
实际结果
TableView与之前具有不同的偏移。
代码示例
代码示例:
import 'package:flutter/material.dart';
import 'package:two_dimensional_scrollables/two_dimensional_scrollables.dart';
class TableExample extends StatefulWidget {
const TableExample({super.key});
@override
State<TableExample> createState() => _TableExampleState();
}
class _TableExampleState extends State<TableExample> {
bool _isVisible = true;
@override
Widget build(BuildContext context) {
return Scaffold(
body: _isVisible
? TableView.builder(
key: const PageStorageKey('table_view'),
cellBuilder: _buildCell,
columnCount: 50,
columnBuilder: _buildColumnSpan,
rowCount: 100,
rowBuilder: _buildRowSpan,
)
: const Text('TableView is not visible'),
persistentFooterButtons: <Widget>[
TextButton(
onPressed: () => setState(() {
_isVisible = !_isVisible;
}),
child: const Text('Toggle visibility'),
),
],
);
}
TableViewCell _buildCell(BuildContext context, TableVicinity vicinity) {
return TableViewCell(
child: Center(
child: Text('Tile c: ${vicinity.column}, r: ${vicinity.row}'),
),
);
}
TableSpan _buildColumnSpan(int index) => const TableSpan(
extent: FixedTableSpanExtent(150),
);
TableSpan _buildRowSpan(int index) => TableSpan(
backgroundDecoration: TableSpanDecoration(
color: index.isEven ? Colors.purple[100] : null,
),
extent: const FixedTableSpanExtent(150),
);
}
截图或视频
截图/视频演示bug.mov
日志
- 无响应*
Flutter Doctor输出
Doctor输出:
[✓] Flutter (Channel stable, 3.22.1, on macOS 14.5 23F79 darwin-arm64 (Rosetta), locale en-NL)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2023.1)
[✓] IntelliJ IDEA Community Edition (version 2021.1.3)
[✓] VS Code (version 1.89.1)
[✓] Connected device (6 available)
[✓] Network resources
3条答案
按热度按时间yquaqz181#
感谢@MarkSpit的报告,但是我无法确定在再次点击按钮后发生了什么。我看到的屏幕和之前一样吗?
bxpogfeg2#
对不起,我不太清楚。在视频中,请看左上角:
一开始你在 c: 0 r: 10。再次点击按钮后,你到了 c: 10 r: 10。
视口向右移动了10列。
ewm0tg9j3#
感谢您的更新。我能够复制报告的错误并观察到项目被偏移。这也在移动平台上,因为我在Android模拟器上验证了这一点。
stable, master flutter doctor -v