dotnet / dotnet/android-libraries
No @Navigator.Name annotation found
- Dominant language
- C#
- Stars
- 317
- Forks
- 73
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 17
Description
### Android application type
Classic Xamarin.Android (MonoAndroid12.0, etc.)
### Affected platform version
Visual Studio Community 2022 for Mac Version 17.4.4, Xamarin.Android 13.1.0.1
### Description
I try to create custom AndroidX.Navigation.Navigator. My CustomFragmentNavigator implements IName:
public class CustomFragmentNavigator : AndroidX.Navigation.Navigator, AndroidX.Navigation.Navigator.IName
{
public string Value()
{
return "customFragment";
}
public Class AnnotationType()
{
return Class;
}
...
}
Also I create CustomNavHostFragment:
public class CustomNavHostFragment : AndroidX.Navigation.Fragment.NavHostFragment
{
protected override void OnCreateNavHostController(NavHostController navHostController)
{
base.OnCreateNavHostController(navHostController);
var navigator = new CustomFragmentNavigator(RequireContext(), ChildFragmentManager, GetContainerId());
navHostController.NavigatorProvider.AddNavigator(navigator);
}
int GetContainerId()
{
if (Id > 0)
return Id;
return Resource.Id.nav_host_fragment_container;
}
}
When executing Java.Lang.IllegalArgumentException has been thrown (No @Navigator.Name annotation found for CustomFragmentNavigator).
What is analog of attribute @Navigator.Name("customFragment") in Xamarin?
### Steps to Reproduce
1. Create custom AndroidX.Navigation.Navigator
2. Create custom AndroidX.Navigation.Fragment.NavHostFragment and add navigator from previous step
3. Use custom NavHostFragment in layout
### Did you find any workaround?
_No response_
### Relevant log output
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.