API ReferenceEnvironment
MediaQuery
Window-local environment snapshot scope with viewport, scale, and safe-area data.
MediaQuery { data: RuntimeEnvironment, child: Widget } installs a normalized
environment snapshot for its subtree. MediaQueryData is an alias for
RuntimeEnvironment.
use incular::prelude::*;
fn main() {
let environment = RuntimeEnvironment::default();
println!("scale: {}", environment.scale_factor);
let query = MediaQuery::new(environment.clone(), Text::new("Hi"));
println!("viewport: {:?}", query.data().viewport);
println!("owned viewport: {:?}", query.into_data().viewport);
let app = Application::new(move |_cx| {
MediaQuery::new(environment.clone(), Text::new("Hi")).into()
})
.expect("valid application");
incular::run(app).expect("run application");
}RuntimeEnvironment fields
| Field | Type | Meaning |
|---|---|---|
viewport | Size | Logical viewport size |
physical_width / physical_height | u32 | Native pixels |
scale_factor | f64 | Device pixel ratio |
brightness | Brightness (Light default / Dark) | Platform color preference |
text_scale | f32 | Accessibility text scaling |
safe_insets / view_padding / view_insets | EdgeInsets | System areas |
locales | Vec<Locale`>`` | Preferred locales |
text_direction | TextDirection | Resolved direction |
reduced_motion / high_contrast | bool | Accessibility flags |
input | InputCapabilities | Device capabilities |
window_focused / window_occluded | bool | Window state |
Methods: normalized(), primary_locale(), resolve_locale(&supported).
Prefer BuildContext readers (cx.viewport(), cx.scale_factor(),
cx.safe_insets(), …) inside builds — they subscribe finely; MediaQuery
overrides the whole snapshot for a subtree (tests, previews).
Related: LayoutBuilder,
Application.