Skip to content

Instantly share code, notes, and snippets.

@yaizudamashii
Last active March 23, 2021 20:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yaizudamashii/5805add2db5b83ac318c469fb4866847 to your computer and use it in GitHub Desktop.
Save yaizudamashii/5805add2db5b83ac318c469fb4866847 to your computer and use it in GitHub Desktop.
package <your.package.name>
import androidx.fragment.app.Fragment
import io.flutter.embedding.android.FlutterFragment
import io.flutter.embedding.engine.FlutterEngine
// フラターフラグメントを作成する時にこの関数を使用します。
fun Fragment.createFlutterFragment(flutterFragmentTag: String, flutterCachedEngineId: String, containerId: Int): FlutterFragment {
var flutterFragment = childFragmentManager.findFragmentByTag(flutterFragmentTag) as FlutterFragment?
if (flutterFragment == null) {
var newFlutterFragment = FlutterFragment.withCachedEngine(flutterCachedEngineId).build<FlutterFragment>()
flutterFragment = newFlutterFragment
childFragmentManager
.beginTransaction()
.add(
containerId,
newFlutterFragment,
flutterFragmentTag
)
.commit()
return flutterFragment
}
return flutterFragment
}
// フラター画面を描画する時フラターアプリ内のどこに行くかをこの関数に渡します。
fun Fragment.pushToFlutterFragment(childFragment: Fragment, flutterFragment: FlutterFragment?, flutterRoute: String) {
if (childFragment == flutterFragment) {
var cachedEngine: FlutterEngine? = flutterFragment?.flutterEngine
cachedEngine?.navigationChannel?.pushRoute(flutterRoute);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment