Flutterfragment не получает обновления ChangeNotifierAndroid

Форум для тех, кто программирует под Android
Ответить
Гость
 Flutterfragment не получает обновления ChangeNotifier

Сообщение Гость »


Я использую FlutterFragment для размещения фрагмента флаттера внутри студии Android. Вот и все, flutter открывает активность Android (экран карты), в которой, в свою очередь, размещается FlutterFragment (простой нижний лист). Проблема в том, что когда я обновляю что-то в ChangeNotifier androidNavigationController, это не отражается внутри AndroidCustomNavigationBottomSheet. Кроме того, что-либо внутри AndroidCustomNavigationBottomSheet не может получать обновления ни от одного GetxController. Есть идеи, в чем может быть проблема? Интересно, речь идет о создании нового движка, отличного от FlutterEngine? Это части кода:

GetMaterialApp( строитель: (контекст BuildContext, виджет? дочерний) { окончательные данные MediaQueryData = MediaQuery.of(context); вернуть МедиаЗапрос( данные: data.copyWith(textScaleFactor: data.textScaleFactor.clamp(0.5, 3.2)), ребенок: ребенок! ); }, заголовок: '$appName', Ключ Навигатора: Ключ Навигатора, debugShowCheckedModeBanner: ложь, тема: MyTheme.darkTheme, darkTheme: MyTheme.darkTheme, themeMode: ThemeMode.dark, маршруты: { LoginScreen.routeName: (контекст) => LoginScreen(), HomeScreen.routeName: (контекст) => HomeScreen(), LoginWithCredentials.routeName: (контекст) => LoginWithCredentials(), ** 'flutter_android_bottomsheet': (контекст) => Provider.value(значение: androidNavigationController, дочерний элемент: AndroidCustomNavigationBottomSheet(),)** }, получить страницы: [ GetPage(имя: HomeScreen.routeName, страница: () => HomeScreen()) ], переводы: МойПеревод(), локаль: TranslationController.initialLang, дом: Дом(isDark) ); Внутри моего MainActivity.kt
класс MainActivity: FlutterActivity() { ... переопределить удовольствие configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { super.configureFlutterEngine(flutterEngine) globalFlutterEngine = flutterEngine mainViewBinding = MainViewBinding.inflate(layoutInflater) setContentView(mainViewBinding.root) ... val newEngine = FlutterEngine(это) newEngine.navigationChannel.setInitialRoute("flutter_android_bottomsheet") newEngine.dartExecutor.executeDartEntrypoint( DartExecutor.DartEntrypoint.createDefault() ) FlutterEngineCache.getInstance().put("my_cached_engine", newEngine) }
И внутри моей NavigationActivity

класс NavigationActivity : AppCompatActivity() { @SuppressLint("MissingPermission") переопределить fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) привязка = NavigationActivityWithTokenBinding.inflate(layoutInflater) setContentView(binding.root) flutterFragment = FlutterFragment.withCachedEngine("my_cached_engine").transparencyMode(TransparencyMode.transparent).build() val tx: FragmentTransaction = supportFragmentManager.beginTransaction() tx.replace(R.id.flutter_container, flutterFragment!!) tx.commitNow() supportFragmentManager.executePendingTransactions() } } Проверено и ожидаемо: использовался FluterFragment (виджет AndroidCustomNavigationBottomSheet Flutter), который размещается действием Android, и ожидалось, что FluterFragment будет использовать другие объекты ChangeNotifier и Getxcontroller. Результат: виджет AndroidCustomNavigationBottomSheet Flutter не получает никаких обновлений ни от ChangeNotifier, ни от Getxcontroller.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»