Microsoft announces new progress in Flutter support for foldable devices

Microsoft announces new progress in Flutter support for foldable devices

Microsoft has released an update on supporting the development of foldable devices with Flutter. Previously, they showed users the PRs opened on Flutter Framework and Engine. The Engine PR has been merged; the original Framework PR was split into smaller PRs, some of which have also been merged.

Figure: Flutter foldable PR progress

MediaQuery now has Display Features

Display Features are parts of the display that can be hindered by hardware features. The hinge on the Surface Duo is such a display feature.

The MediaQuery PR has now been merged, which means that if you switch to the master channel in your local Flutter settings, you can access a property called displayFeatures. Some devices can have multiple display features, not just one, so this new property is a list. This is the structure of the items in the list:

 class DisplayFeature {
final Rect bounds ;
final DisplayFeatureType type ;
final DisplayFeatureState state ;
}

For more details, see the official documentation.

If you find that your code is always filtering the display features list to get hinges, you can use this extension method in your code:

 /// Extension method that helps with working with the hinge specifically.
extension MediaQueryHinge on MediaQueryData {
DisplayFeature ? get hinge {
for ( final DisplayFeature e in displayFeatures ) {
if ( e . type == DisplayFeatureType . hinge )
return e ;
}
return null ;
}
}

DisplayFeatureSubScreen has also been merged

When you only want to display content on one screen of the Surface Duo (which is the case when showing a dialog), you now have the option of using the DisplayFeatureSubScreen widget. This widget is primarily used for modal routes and is used heavily in the "Dialog and popup support" PR. In this sense, it is a stepping stone to full dialog support. If you have custom modal routes in your app, you may want to consider wrapping them with this widget.

 class _MyRoute < T > extends PopupRoute < T > {
@ override
Widget buildPage ( ... ) {
return DisplayFeatureSubScreen (
child : _myPageLayout (),
anchorPoint : Offset . infinite ,
);
}
}

Andrei Diaconu, senior software engineer for Surface Duo Experience, said that there are still some contributions that have not been merged, but the situation is much simpler than when these changes were first proposed. "Back then you had to configure a custom Flutter Engine, and now things are much simpler."

In addition, Microsoft has added some new samples for Flutter that showcase design patterns for foldable devices.

For more details, please visit the official blog.

This article is reproduced from OSCHINA

Title of this article: Microsoft announces new progress in Flutter foldable device support

Article URL: https://www.oschina.net/news/184674/foldable-flutter-update

<<:  Research on compatibility solutions for frosted glass CSS special effects

>>:  Finally supports personalized ringtones and HD videos! WeChat new version experience

Recommend

iOS 14.7 official version released, iOS 14.7 update notes

iOS 14.7 mainly optimizes general functions, incl...

The “4-word secret” for event operation planning!

In the actual work of operation planning, we may ...

User operation: a simple and easy-to-use user growth methodology

This article introduces in detail the specific im...

An excellent Android application starts with building a project

[[142392]] 1. Project Structure The MVP model is ...

FF 91 starts vehicle assembly, the biggest progress in two years

After more than two years of intensive certificat...

Is the effect of bidding promotion declining? You must analyze these 8 factors

Nowadays, most of our SEM promotions revolve arou...

Android 11 is coming! More Kotlin supports Java or exits Android stage

[[329809]] Google today released the first Androi...

Android high imitation taxi and other software project source code

Source code introduction This project is modeled ...