Попытка создать плагин Flutter, который вызывает getSupportFragmentManager() в Android

Здравствуйте, я создаю новый плагин Flutter, который работает с SDK.

SDK на стороне Android требует, чтобы я вызывал getSupportFragmentManager()

Я попытался вызвать это в действии «регистратор» в моем классе плагинов для Android, но он продолжает выдавать мне ошибку

"Неразрешенная ссылка: getSupportFragmentManager"

Вот мой код: я вызываю getSupportFragmentManager() внизу

пожалуйста помоги

Возможный дубликат получить v4.app.FragmentManager из плагина Flutter

Pavel 09.04.2019 22:30

Я видел это и пробовал override fun getSupportFragmentManager(): FragmentManager { val act = registrar!!.activity() as Activity return act.getSupportFragmentManager() }

Derek Hannah 10.04.2019 00:26

но это не сработало

Derek Hannah 10.04.2019 00:27

все еще получаю Unresolved reference: getSupportFragmentManager

Derek Hannah 10.04.2019 00:28
2
4
879
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы импортируете обычный класс Activity:

import android.app.Activity

Для доступа SupportFragmentManager вам нужно FragmentActivity:

import android.support.v4.app.FragmentActivity

Тогда вы можете сделать

val act = registrar.activity() as FragmentActivity
return act.supportFragmentManager

Обратите внимание, что вам также необходимо добавить зависимость android.support.v4 в android/build.gradle:

dependencies {
    ...
    implementation 'com.android.support:support-v4:28.0.0'
}

и наследовать MainActivity от FlutterFragmentActivity вместо FlutterActivity.

Я закончил тем, что использовал это

override fun getSupportFragmentManager(): FragmentManager {
    val act = registrar!!.activity() as FragmentActivity
    return act.getSupportFragmentManager()
}

Другие вопросы по теме