Change FlutterViewController default opaque value to NO (flutter/engine#30664)

This commit is contained in:
JsouLiang
2022-02-21 11:22:15 +08:00
committed by GitHub
parent 15c86d1ee7
commit 450e986dd0
2 changed files with 12 additions and 2 deletions

View File

@@ -120,7 +120,7 @@ typedef enum UIAccessibilityContrast : NSInteger {
NSAssert(engine != nil, @"Engine is required");
self = [super initWithNibName:nibName bundle:nibBundle];
if (self) {
_viewOpaque = YES;
_viewOpaque = NO;
if (engine.viewController) {
FML_LOG(ERROR) << "The supplied FlutterEngine " << [[engine description] UTF8String]
<< " is already used with FlutterViewController instance "
@@ -203,7 +203,7 @@ typedef enum UIAccessibilityContrast : NSInteger {
return;
}
_viewOpaque = YES;
_viewOpaque = NO;
_weakFactory = std::make_unique<fml::WeakPtrFactory<FlutterViewController>>(self);
_engine = std::move(engine);
_flutterView.reset([[FlutterView alloc] initWithDelegate:_engine opaque:self.isViewOpaque]);

View File

@@ -168,6 +168,16 @@ typedef enum UIAccessibilityContrast : NSInteger {
self.messageSent = nil;
}
- (void)testFlutterViewControllerViewOpaue {
FlutterEngine* mockEngine = OCMPartialMock([[FlutterEngine alloc] init]);
[mockEngine createShell:@"" libraryURI:@"" initialRoute:nil];
FlutterViewController* viewController = [[FlutterViewController alloc] initWithEngine:mockEngine
nibName:nil
bundle:nil];
// The FlutterViewController's FlutterViewLayer Opaque default is NO
XCTAssertFalse(viewController.isViewOpaque);
}
- (void)testkeyboardWillChangeFrameWillStartKeyboardAnimation {
FlutterEngine* mockEngine = OCMPartialMock([[FlutterEngine alloc] init]);
[mockEngine createShell:@"" libraryURI:@"" initialRoute:nil];