Значок «Основная деталь» не реагирует на FlowDirection.RightToLeft, если не помещен в NavigationPage - PullRequest
0 голосов
/ 30 января 2019

Кнопка гамбургера на главной странице подробностей всегда слева, даже если я установил FlowDirection на RightToLeft, это происходит, когда в App.xaml.cs задано MainPage:

MainPage = new MasterDetailPage();

Само меню справа:

Но я заметил, что оно работает правильно, когда я помещаю его в NavigationPage:

MainPage = new NavigationPage( new MasterDetailPage()); но при таком подходе кнопка «Назад» все еще выравнивается по левому краю !!

, и я должен установить NavigationPage.HasNavigationBar в False, чтобы он выглядел нормально (без навигационной панели в верхней части главной страницы),Есть ли решение этой проблемы?

1 Ответ

0 голосов
/ 02 марта 2019

Я решил эту проблему, создав рендерер для NavigationPage

[assembly: ExportRenderer(typeof(NavigationPage), typeof(CustomNavigationPageRenderer))]
namespace MyApp.Droid.Renderers
{

    class CustomNavigationPageRenderer : Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer
    {
        public CustomNavigationPageRenderer(Context context) : base(context) { }
        private static Android.Support.V7.Widget.Toolbar GetToolbar() => (CrossCurrentActivity.Current?.Activity as MainActivity)?.FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);

        protected override void OnLayout(bool changed, int l, int t, int r, int b)
        {
            base.OnLayout(changed, l, t, r, b);
            var actionBar = GetToolbar();
            actionBar.LayoutDirection = Helpers.Settings.Lang == "ar" ? LayoutDirection.Rtl : LayoutDirection.Ltr;
        }

    }
}

со вторым подходом (настройка страницы с основными данными в NavigationPage)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...