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

An article to show you 20 new changes in iOS 12 Beta 5

A few days ago, Apple released the iOS 12 beta 5 ...

How can artificial intelligence make you happier the more you shop?

lead We have talked about autonomous driving, sma...

Don't squeeze a pinhole! Here's how to deal with it correctly

Eyes are the windows to the soul and one of the m...

How Pinduoduo improves user purchase conversion rate!

1. Definition of Purchase Conversion Rate Convers...

Do you know these 6 fission models of community operation?

In the process of operating the community, we all...

Top 10 Complaints About Technology Products

Endless push [[129189]] Buzz! "You received ...

Tips for placing Tencent ads in the automotive industry

1. Industry prospects and current situation With ...

Tom, who has been catching mice for 80 years, is he British or Russian?

Do you still remember the cat that brought us end...