类型的值' parentdata?'可以将stackParentData; stackparentData;
' final stackparentdata childparentdata = child.parentdata; 在此处遇到的错误'
import'软件包:flutter/yaters.dart'; 导入“软件包:flutter/rendering.dart”;
类CustomStack扩展堆栈{ CustomStack({Children}):超级(儿童:儿童);
@Override CustomRenderstack createrenderObject(buildContext上下文){ 返回CustomRenderStack( 对准:对齐, 文本方向:文本方向?? (上下文)的方向性, 适合:适合, //溢出:溢出, ); } }
类CustomRenderStack扩展了RenderStack { CustomRenderStack({校准,textDirection,fit,Overflow}) : 极好的( 对准:对齐, 文本方向:文字方向, 适合:适合, //溢出:溢出 );
@Override bool hittestChildren(boxhittestresult结果,{必需偏移位置}){ var stackhit = false;
final children = getChildrenAsList();
for (var child in children) {
final StackParentData childParentData = child.parentData;
final childHit = result.addWithPaintOffset(
offset: childParentData.offset,
position: position,
hitTest: (BoxHitTestResult result, Offset transformed) {
assert(transformed == position - childParentData.offset);
return child.hitTest(result, position: transformed);
},
);
if (childHit) stackHit = true;
}
return stackHit;
} }
'final StackParentData childParentData = child.parentData; Error occuring here'
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
class CustomStack extends Stack {
CustomStack({children}) : super(children: children);
@override
CustomRenderStack createRenderObject(BuildContext context) {
return CustomRenderStack(
alignment: alignment,
textDirection: textDirection ?? Directionality.of(context),
fit: fit,
//overflow: overflow,
);
}
}
class CustomRenderStack extends RenderStack {
CustomRenderStack({alignment, textDirection, fit, overflow})
: super(
alignment: alignment,
textDirection: textDirection,
fit: fit,
//overflow: overflow
);
@override
bool hitTestChildren(BoxHitTestResult result, {required Offset position}) {
var stackHit = false;
final children = getChildrenAsList();
for (var child in children) {
final StackParentData childParentData = child.parentData;
final childHit = result.addWithPaintOffset(
offset: childParentData.offset,
position: position,
hitTest: (BoxHitTestResult result, Offset transformed) {
assert(transformed == position - childParentData.offset);
return child.hitTest(result, position: transformed);
},
);
if (childHit) stackHit = true;
}
return stackHit;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论