listview - 在颤动中实现带有文本的可缩放列表视图
问题描述
我是新来的,并试图用几个文本容器制作一个列表视图。我喜欢在其中添加捏缩放功能,但它工作得不是很顺利。在列表视图的某些部分,它可以正常工作,但有时必须非常用力才能放大并且它是完全随机的。
这是我的代码:
class BodyLayout extends StatefulWidget {
_BodyLayout createState() => _BodyLayout();
}
class _BodyLayout extends State<BodyLayout> {
@override
Widget build(BuildContext context) {
return _myListView(context);
}
Widget _myListView(BuildContext context) {
return InteractiveViewer(
panEnabled: true, // Set it to false to prevent panning.
boundaryMargin: EdgeInsets.all(2),
minScale: 0.5,
maxScale: 4,
child: ListView.builder(
itemCount: 286,
itemBuilder: (context, index) {
if (index == 0) {
return Card(
// <-- Card widget
child: Column(
textDirection: TextDirection.rtl,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Wrap(
direction: Axis.horizontal,
alignment: WrapAlignment.start,
runAlignment: WrapAlignment.center,
textDirection: TextDirection.rtl,
spacing: 10.0,
// gap between adjacent chips
runSpacing: 10.0,
// gap between lines
children: <Widget>[
_V1Card0(),
_V1Card1(),
]),
new Padding(
padding: EdgeInsets.fromLTRB(5, 5, 5, 5),
child: Text(UrduV1,
style: TextStyle(
fontSize: 24.0,
fontWeight: FontWeight.w200,
fontFamily: 'nafees'),
textDirection: TextDirection.rtl,
textAlign: TextAlign.right))
],
));
}
if (index == 1) {
return Card(
child: Column(
textDirection: TextDirection.rtl,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Wrap(
direction: Axis.horizontal,
alignment: WrapAlignment.start,
runAlignment: WrapAlignment.center,
textDirection: TextDirection.rtl,
spacing: 2.0,
// gap between adjacent chips
runSpacing: 5.0,
children: <Widget>[
_V2Card0(),
_V2Card1(),
_V2Card2(),
_V2Card3(),
_V2Card4(),
_V2Card5(),
_V2Card6(),
]),
new Padding(
padding: EdgeInsets.fromLTRB(5, 5, 5, 5),
child: Text(EngV2,
textDirection: TextDirection.ltr,
textAlign: TextAlign.justify)),
]),
);
}
if (index == 2) {
return Card(
child: Wrap(
direction: Axis.horizontal,
alignment: WrapAlignment.start,
runAlignment: WrapAlignment.center,
textDirection: TextDirection.rtl,
spacing: 2.0,
// gap between adjacent chips
runSpacing: 5.0,
children: <Widget>[
new Padding(
padding: EdgeInsets.fromLTRB(5, 5, 5, 5),
child: Text(arabicV3,
style: TextStyle(
fontSize: 24.0,
fontWeight: FontWeight.w200,
fontFamily: 'uthmanitext'),
textDirection: TextDirection.rtl,
textAlign: TextAlign.start)),
new Padding(
padding: EdgeInsets.fromLTRB(5, 5, 5, 5),
child: Text(EngV3,
textDirection: TextDirection.ltr,
textAlign: TextAlign.start))
]));
}
return Card(
child: Column(
textDirection: TextDirection.rtl,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Wrap(
direction: Axis.horizontal,
alignment: WrapAlignment.start,
runAlignment: WrapAlignment.center,
textDirection: TextDirection.rtl,
spacing: 2.0,
// gap between adjacent chips
runSpacing: 5.0,
children: <Widget>[
_V2Card0(),
_V2Card1(),
_V2Card2(),
_V2Card3(),
_V2Card4(),
_V2Card5(),
_V2Card6(),
]),
new Padding(
padding: EdgeInsets.fromLTRB(5, 5, 5, 5),
child: Text(EngV2,
textDirection: TextDirection.ltr,
textAlign: TextAlign.justify)),
]),
);
},
) );
}
}
我也尝试过使用缩放和 photo_view 小部件以及矩阵手势检测器,但是在缩小时它们会使列表视图变得如此之小。请帮助使其捏合缩放功能顺利运行。
解决方案
推荐阅读
- ajax - 文件上传请求中的长 TTFB 仅在 Chrome
- excel - 如何将值转换为整数 VBA
- scala - `.delay` 或 `.map` 中抛出的异常的猫效应的预期行为
- python - 为什么这个while循环在if语句下不执行?
- c++ - Meson 选择了错误的编译器(GCC 而不是 clang)
- oop - 哪些模式可以帮助我组织具有模块化结构的大型项目?
- c# - 将集合绑定到 wpf 数据网格中的列
- reactjs - 错误:无法加载插件导入:部署 create-react-app 时找不到模块“eslint-plugin-import”
- ios - SWRevealViewcontroller UIbutton 动作第一次点击不起作用,之后它工作正常
- python-3.x - pycharm中的文件层次结构导致错误