These two (including the commented one) cases didn't work out:
onObserve: (model) {
if (model is! ListViewObserveModel) return;
final first = model.firstChild!;
// final leading = listModel.firstChild!.leadingMarginToViewport;
// final trailing = listModel.firstChild!.trailingMarginToViewport;
// var alignment = 0.0;
// if (leading.abs() + trailing.abs() > 0) {
// alignment = leading.abs() / (leading.abs() + trailing.abs());
// }
final maxDistance =
first.viewportMainAxisExtent - first.size.height;
var alignment = 0.0;
if (maxDistance > 0) {
alignment = first.leadingMarginToViewport / maxDistance;
}
print('============== a $alignment');
},
These two (including the commented one) cases didn't work out: