whereRenderObjectProp<T, R extends RenderObject> method
WidgetSelector<W>
whereRenderObjectProp<T, R extends RenderObject>(
- NamedRenderObjectProp<
R, T> prop, - bool match(
- T value
Creates a filter for the render objects of the discovered widgets based on a specified property. This filter is applied when the WidgetSelector is snapshotted.
Useful for selecting widgets based on specific properties of their render objects. Provide a NamedRenderObjectProp and a matching function.
Example usage:
spotSingle<Checkbox>()
.whereRenderObjectProp<double, RenderBox>(
prop: renderObjectProp('opacity', (ro) => ro.opacity),
match: (opacity) => opacity > 0.5,
).existsOnce();
Implementation
@useResult
WidgetSelector<W> whereRenderObjectProp<T, R extends RenderObject>(
NamedRenderObjectProp<R, T> prop,
bool Function(T value) match,
) {
return self!.addStage(
PredicateFilter(
predicate: (Element element) {
final renderObject = element.renderObject;
if (renderObject is R) {
final value = prop.get(renderObject);
return match(value);
}
return false;
},
description: prop.name,
),
);
}