double getSafeOffset(double itemScrollOffset) { if (virtual) { return itemScrollOffset; } return min(max(itemScrollOffset, position.minScrollExtent), position.maxScrollExtent); }