我尝试使用以下步骤将Flutter应用程序嵌入现有的Android应用程序中: https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps
我正在使用FlutterFragment
方法将onCreate
嵌入到我的活动中,但是当我旋转屏幕时,片段不会保持其状态。
这是MainActivity代码:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (savedInstanceState == null) {
supportFragmentManager.beginTransaction().also {
it.replace(android.R.id.content, Flutter.createFragment(null), "flutter")
}.commit()
} else {
val flutterFragment = supportFragmentManager.findFragmentByTag("flutter")
supportFragmentManager.beginTransaction().also {
it.attach(flutterFragment!!)
}.commit()
}
}
}
答案 0 :(得分:2)
您可能没有正确声明您的活动。 configChanges
对于Flutter使用Android的生命周期非常重要。
您必须像这样在AndroidManifest
上声明它:
<activity
android:launchMode="singleTop"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize"
android:name=".MainActivity"
android:theme="@style/AppTheme.NoActionBar"/>