FlutterFragment没有保持状态

时间:2018-10-22 17:58:28

标签: flutter

我尝试使用以下步骤将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()
    }

}

}

1 个答案:

答案 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"/>