Вам может не понравиться предложенный мной метод, если вы сделаете навигатор в базовом активити. Но базовый навигатор - вещь скользкая.
Смотрите: при навигации по фрагментам активити надо рассматривать как отдельные приложения внутри приложения (я всегда смотрю на это именно так, так как любое активити всегда можно открыть для запуска извне). В таком случае выходит, что фрагменту будет важно в каком конкретно активити он запущен. В одном случае он должен будет вызвать одну команду, а в другом иную. Это плохо. Поэтому надо чтобы фрагмент вызывал одинаковые команды, а навигатор в каждом активити решал, как именно себя вести.