You must know how the UI work in both oses if you want to be capable of using xamarin efficently. Yeah, there is XamarinForms that tries to solve that problem, but it is very... bad, right now.
Then why would I go the Xamarin route in the first place? The whole point is to avoid having to learn both platforms. Personally, I'd rather struggle with two native codebases than to struggle learning an imperfect abstraction that still requires me to learn both platforms.
So far the C# abstraction of Android has if anything been easier to use than the official Java API, or at the very least less verbose.