Панель вкладок слайда страницы с вкладками Xamarin вместо кнопки «еще»

#c# #visual-studio #xamarin #xamarin.ios

#c# #visual-studio #xamarin #xamarin.ios

Вопрос:

Я работаю с Xamarin Forms, создавая приложения как для Android, так и для iOS. У меня есть страница с вкладками — на Android страница с вкладками отображается вверху, и когда у меня много вкладок, отображаются не все из них, но их можно перемещать в горизонтальном направлении. В iOS, когда у меня более 5 вкладок, создается кнопка «Еще», которую я могу открыть и просмотреть остальные вкладки.

Как удалить кнопку «Еще», если на странице с вкладками iOS более 5 вкладок, и поместить вкладки с возможностью скольжения (аналогично Android)?

занятый кот

Ответ №1:

Вы можете использовать Naxam.TopTabbedPage.Формы из Nuget

Использование:

в вашем файле AppDelegate.cs проекта iOS

 public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
    global::Xamarin.Forms.Forms.Init();

    TopTabbedRenderer.Init(); //add this line

    LoadApplication(new App());

    return base.FinishedLaunching(app, options);
}
  

И в ваших формах

в xaml

 <?xml version="1.0" encoding="utf-8" ?>
<forms:TopTabbedPage             
         xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:local="clr-namespace:App11"
         x:Class="App11.MainTabbedPage"
         xmlns:forms="clr-namespace:Naxam.Controls.Forms;assembly=Naxam.TopTabbedPage.Forms"
         BarBackgroundColor="#2196F3">


  <local:Page1 Title="PAGE 1"/>
  <local:Page2 Title="PAGE 2"/>
  <local:Page3 Title="PAGE 3"/>
  <local:Page4 Title="PAGE 4"/>
  <local:Page5 Title="PAGE 5"/>


</forms:TopTabbedPage>
  

в xaml.cs

 using Naxam.Controls.Forms;

namespace TopTabbedPageDemo
{

 public partial class MainTabbedPage : TopTabbedPage
  {
      public MainTabbedPage()
      {
          InitializeComponent();
      }
  }
} 
  

Комментарии:

1. Удачного кодирования 🙂

Ответ №2:

Возможно ли переместить заголовок первой вкладки в исходное положение, чтобы он не был разрезан пополам? проблема возникает, только если вкладок много. После перемещения между вкладками проблема исчезает, но при инициализации страницы это происходит.

введите описание изображения здесь

Ответ №3:

Попробуйте настроить текущую страницу на соответствующую страницу содержимого; т.е;

если вы хотите, чтобы 1-я страница содержимого отображалась при инициализации, установленной как;

это.currentPage = tab1; // где tab1 — это x: Имя страницы содержимого

надеюсь, это поможет;

Спасибо