ursus
04/28/2026, 8:02 PMNav3?
(assuming all of the actual ui is already in compose)efemoney
04/29/2026, 7:28 AMAndroidFragment(...) combined with your fragment manager, that should work.
For strategies around moving from Nav2 to 3 I think there is some guidance out there but specifically for fragments, I would say, wrap your old “destination” type in some sort of NavKey and implemnet the entry provider for that NavKey to resolve the destination into the actual fragment class then use AndroidFragmentursus
04/29/2026, 8:18 AMefemoney
04/29/2026, 8:34 AMsupportFragmentManager.beginTransaction()...commit() , of course those need to be removed or changedursus
04/29/2026, 8:35 AMefemoney
04/29/2026, 8:53 AMursus
04/29/2026, 8:56 AMefemoney
04/29/2026, 9:20 AMinterface InteropFragmentManager {
fun beginTransaction(): InteropTransaction
}
interface InteropTransaction {
fun add(...): InteropTransaction
fun remove(...): InteropTransaction
fun commit()
}ursus
04/29/2026, 9:21 AMefemoney
04/29/2026, 9:22 AMclass FragmentNavKey<T: Fragment>(
val cls: KClass<T>,
val args: Bundle = Bundle.EMPTY,
)efemoney
04/29/2026, 9:22 AMefemoney
04/29/2026, 9:22 AMursus
04/29/2026, 9:23 AMefemoney
04/29/2026, 9:23 AMursus
04/29/2026, 9:23 AMefemoney
04/29/2026, 9:23 AMefemoney
04/29/2026, 9:25 AMursus
04/29/2026, 9:26 AMursus
04/29/2026, 9:26 AMefemoney
04/29/2026, 9:27 AMAndroidFragmentursus
04/29/2026, 9:29 AMefemoney
04/29/2026, 9:30 AMefemoney
04/29/2026, 9:31 AMursus
04/29/2026, 9:33 AMnewInstance static functions and make bundle keys public, but that's doableursus
04/29/2026, 9:33 AMefemoney
04/29/2026, 9:34 AMnewInstance static functions
Yes, absolutely. You dont need to make the keys public. Just add/replace the function with an newInstance that returns a Bundle instead. That way the keys are still encapsulated and the bundle itself is opaque and can be changed later without worry.