Forum Xamarin Xamarin.Forms

How to move the Flyout Menu to the right?

SvarogichSvarogich Member ✭✭

Hello all!
I can't find answer, how can i place menu in Xamarin.Forms.Shell at right side of the screen on Android?
Is there any way for it?
Thanks at advance!

Answers

  • LandLuLandLu Member, Xamarin Team Xamurai

    We will add RTL support in the feature but now we need to use custom renderer to override the transition.
    I found a customer had achieved it with a custom IShellFlyoutTransition here:
    https://github.com/xamarin/Xamarin.Forms/issues/6227#issuecomment-569703851
    You could try this workaround to build your own one.

  • SvarogichSvarogich Member ✭✭

    Many thanks!
    I'll try it and report the results.

  • SvarogichSvarogich Member ✭✭

    Unfortunately, IShellFlyoutTransition is defined in namespace Xamarin.Forms.Platform.iOS and usable only for iOS.
    But my solution targets on Android.

  • LandLuLandLu Member, Xamarin Team Xamurai

    Refer to the whole sample here
    https://github.com/balbarak/xamarin-shell-rtl
    The customer changes the layout direction on Android part using:

    Window.DecorView.LayoutDirection = LayoutDirection.Rtl;
    
  • SvarogichSvarogich Member ✭✭
    edited April 1

    Thanks. This code needs changes in AndroidManifest.xml :

    application ...
                 android:supportsRtl="true" 
    

    But it changes not only placing of flyout menu - after this, back button on child page moves right too and shows as left-to-right arrow. So, the back button seems to be the forward button.
    Page title and some controls on page moves right too.
    My customer wants only to see menu at right side. Back button must be at left side, as usual.

  • LandLuLandLu Member, Xamarin Team Xamurai

    This is a temporary alternative there as we haven't supported the right side Shell flyout yet.

Sign In or Register to comment.