TabView объединяет в себе функции компонентов multiview и tabbar. Вы можете настроить каждый подкомпонент отдельно, используя соответствующие API. Другими словами, TabView - это MultiView с встроенной функцией переключения между компонентами. Кроме того, с помощью специальных методов вы можете добавлять и удалять компоненты TabView вместе с соответствующими вкладками на которых они находятся.
В отличие от MultiView, для TabView не нужно отдельно задавать кнопки переключения. Для инициализации достаточно задать объект конструктора, и указать свойство cells, в которое будет помещена коллекция компонентов.
TabView
webix.ui({
view: "tabview",
cells: [
{
header: "List",
body: {
id: "listView",
view: "list",
// конфигурация list
}
},
{
header: "Form",
body: {
id: "formView",
view: "form",
// конфигурация form
}
}
]
});
Related sample: Tabview Initialization
Каждая ячейка TabView содержит:
Обратите внимание что переключение между компонентами - это встроенная функция контрола Tabbar. Для более детальной настройки способов переключения, используйте компонент Multiview.
TabView позволяет настраивать каждую из своих частей отдельно:
Эти объекты конфигурации могут содержать свойства multiview и tabbar, которые нужно переопределить. Если конфигурация не задана, будут использоваться значения по умолчанию.
webix.ui({
view: "tabview",
id: "my_tabview",
cells: [],
tabbar: {
on: {
onAfterTabClick: (id, ev) => {
webix.message("OnAfterTabClick");
},
}
},
multiview: {
// multiview config
}
});
var tabbarObj = $$("my_tabview").getTabbar();
var multiviewObj = $$("my_tabview").getMultiview();
К этим объектам применимы все методы события и свойства ui.tabbar и ui.multiview.
По умолчанию переключение вкладок не анимировано. Чтобы включить анимацию, добавьте конфигурацию multiview с включенным свойством animate:
view:"tabview",
cells:[],
multiview:{
animate:true
}
Свойство animate может принимать объект с расширенными настройками анимации.
Для добавления иконок на вкладки используйте дополнительный HTML в свойстве header:
view: "tabview",
cells: [
{
header: "<span class='webix_icon fa-film'></span>List",
body:{}
}
]
Related sample: Multiview Tabbar with Icons
Подробнее о типах иконок и работе с ними в отдельной статье.
Возможность закрывать вкладки реализуется средствами tabbar.
Включить возможность закрывать все вкладки можно с помощью свойства close в конфигурации tabbar:
view: "tabview",
tabbar: {
close:true
}
Если вы хотите позволить закрывать только определенные вкладки, используйте свойство close в конфигурации соответствующей вкладки:
view: "tabview",
cells: [
{
header:"List",
close:true,
body:{...}
}
]
Related sample: Tabview: Close Tab Button
По умолчанию Tabbar отзывчив к изменениям размеров страницы. Если ширина вкладок больше, чем доступное место, крайние из них собираются в список выпадающего окна и вызываются нажатием на кнопку меню.
Для настройки доступны параметры ширины вкладки и выпадающего окна. Используйте для этого соответствующие свойства в конфигурации tabbar:
view: "tabview",
tabbar: {
popupWidth: 300,
tabMinWidth: 120
}
Подробнее в специальной статье.
Ширину каждой вкладки можно задать отдельно:
webix.ui({
view: "tabview",
cells: [
{
header: "List",
body: {
id: "listView",
view: "list",
width:150 }
},
{
header: "Form",
body: {
id: "formView",
view: "form",
width:250 }
}
]
});
Если в таббаре присутствуют вкладки с разной длиной и шириной, Tabview будет принимать размер активной вкладки.
Чтобы переопределить это поведение, используйте свойство fitBiggest в объекте конфигурации multiview:
view: "tabview",
multiview: {
fitBiggest:true
}
Related sample: Tabview: Fit Active vs Fit Biggest
Функциональность описана в отдельной статье.