解決混合開發(fā)黑屏問(wèn)題
- 將Android項(xiàng)目中嵌入Flutter工程的時(shí)候,在跳轉(zhuǎn)的時(shí)候會(huì)黑屏,目前我也沒有找到很好的方法,網(wǎng)上的方法也試了一下,目前也還沒有比較好的效果,有道友留言說(shuō)打release 也許不會(huì)黑屏這個(gè)我沒試驗(yàn),有興趣的道友可以試試,下面來(lái)說(shuō)說(shuō)這種簡(jiǎn)單粗暴的方法這是在debug模式下操作的:
- 直接配置當(dāng)前activity的theme為透明
<style name="FlutterTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@drawable/task_bg</item>
</style>
- 然后在當(dāng)前activity中設(shè)置該主題
<activity
android:name="com.readnewhome.FlutterIntegralCenterActivity"
android:screenOrientation="portrait"
android:theme="@style/FlutterTheme" >
</activity>
- 這是一種比較好的處理方法先隱藏顯示,等待渲染好第一幀后才顯示flutter頁(yè)面
- 這里要注意一點(diǎn)要在布局中先把a(bǔ)ctivity布局設(shè)置為InVisible狀態(tài),不要使用Gone用InVisible,渲染完成后再設(shè)置為Visible即可
private void initView()
{
final FlutterView flutterView =Flutter.createView(this , getLifecycle() ,"route1");
final FrameLayout layout = (FrameLayout) findViewById(R.id.flutter_container);
layout.addView(flutterView);
final FlutterView.FirstFrameListener[] listeners = new FlutterView.FirstFrameListener[1];
listeners[0] = new FlutterView.FirstFrameListener() {
@Override
public void onFirstFrame() {
layout.setVisibility(View.VISIBLE);
}
};
flutterView.addFirstFrameListener(listeners[0]);
}
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/flutter_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="invisible">
</FrameLayout>
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。