alibaba / alibaba/flutter_boost

[Bug]: RenderMode为RenderMode.surface时,切换flutterBoosterFragment无效

Open
#1,912 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Dart
Stars
7.2k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

### 请描述遇到的问题,以及您所期望的正确的结果

为解决flutter页面闪烁的问题,我将renderMode修改为surface,修改如下:
在demo的基础上修改了
1、FlutterBoostFragment中getRenderMode()的返回值为RenderMode.surface
2、TabCustomViewActivity中createFlutterBoostView().renderMode(RenderMode.surface)

测试机型:Google模拟器 平板 android版本7.1.2

### 请说明如何操作会遇到上述问题

在android大屏上切换tab,flutterboosterfragment第一次显示可以,当第二次被切换到一直停留在之前的fragment,nativeFragment不存在这个问题

### 在下面填入关键复现代码

在TabCustomViewActivity.java中
```
private FlutterBoostView createFlutterBoostView(String url) {
Map params = new HashMap<>();
params.put("url", url);
// #1. create FlutterBoostView
return FlutterBoostView.withCachedEngine()
.transparencyMode(TransparencyMode.transparent)
.renderMode(RenderMode.surface)
.url(url)
.urlParams(params)
.build(this, this);
}
```

在FlutterBoostFragment.java中
```
@Override
public RenderMode getRenderMode() {
// Default to |FlutterTextureView|.
return RenderMode.surface;
}
```

### 复现的平台

Android

### Flutter SDK版本

3.7.3

### FlutterBoost版本

4.4.0

### 是否延迟初始化FlutterBoost

No

### 解决方案

经尝试使用 FragmentTransaction.replace可以正常切换,但是不符合业务逻辑

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the tab switch on an Android tablet using Flutter SDK 3.7.3 and FlutterBoost 4.4.0, then inspect FlutterBoostFragment.java and TabCustomViewActivity.java, especially their RenderMode.surface setup. Verify the fragment lifecycle and cached-engine behavior during the second display. Done means switching tabs shows the selected FlutterBoostFragment instead of leaving the previous fragment visible.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, flutter
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.