Прокручиваемая панель вкладок с FreshTabbedNavigationContainer

С FreshMVVM FreshTabbedNavigationContainer все вкладки хотят быть видимыми одновременно и обрезаны:

Я хочу, чтобы они были полной ширины и прокручивались, как с обычным TabbedPage:

У меня на самом деле не так много вкладок. Это просто пример, чтобы показать, что я имею в виду.

1 ответ

Решение

Вам нужно использовать CustomRednerer.
Например:
В проекте Droid:

[assembly: ExportRenderer(typeof(ScrollableTabbedPage), typeof(ScrollableTabbedPageRenderer))]
namespace ScrollableFreshTabbed.Droid
{
    class ScrollableTabbedPageRenderer : TabbedPageRenderer
    {
        public ScrollableTabbedPageRenderer(Context context) : base(context)
        {

        }
        public override void OnViewAdded(Android.Views.View child)
        {
            base.OnViewAdded(child);
            var tabLayout = child as TabLayout;
            if (tabLayout != null)
            {
                tabLayout.TabMode = TabLayout.ModeScrollable;
            }
        }    
    }
}

В портативном проекте:

public class ScrollableTabbedPage :  FreshTabbedNavigationContainer
{
    public ScrollableTabbedPage ()
    {

    }
}

App.xaml.cs:

        public App ()
        {
            InitializeComponent();
            var tabbedNavigation = new ScrollableTabbedPage();
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);
            tabbedNavigation.AddTab<QuotePageModel>("Contacts", null);

            MainPage = tabbedNavigation;    
        }

И результат:

Другие вопросы по тегам