Skip to main content

TabView

The TabView component is used to display content divided into multiple tabs, offering a way to switch between different sections. The component allows customization of the header, active tab behavior, and styles.

Import

Phaselis exports the TabView component.

import { TabView } from "phaselis";
  • TabView: Main component for creating tabbed navigation.

Usage

Basic TabView

import { TabItem, TabView } from "phaselis";
import { Text } from "react-native";

const Example = () => {
return (
<TabView activeTab={0}>
<TabItem title="Tab 1">
<Text>Content for Tab 1</Text>
</TabItem>
<TabItem title="Tab 2">
<Text>Content for Tab 2</Text>
</TabItem>
</TabView>
);
};

export default Example;

Scrollable TabView

import { TabItem, TabView } from "phaselis";
import { Text } from "react-native";

const Example = () => {
return (
<TabView activeTab={2} scrollable>
<TabItem title="Item 1">
<Text>Tab Content 1</Text>
</TabItem>
<TabItem title="Item 2">
<Text>Tab Content 2</Text>
</TabItem>
<TabItem title="Item 3">
<Text>Tab Content 3</Text>
</TabItem>
<TabItem title="Item 4">
<Text>Tab Content 4</Text>
</TabItem>
<TabItem title="Item 5">
<Text>Tab Content 5</Text>
</TabItem>
</TabView>
);
};

export default Example;

Props

activeTab

number

The index of the tab that should be active initially.

import { Text } from "react-native";
<TabView activeTab={1}>
<TabItem title="Item 1">
<Text>Tab Content 1</Text>
</TabItem>
<TabItem title="Item 2">
<Text>Tab Content 2</Text>
</TabItem>
{/* Add more tabs here */}
</TabView>

children required

any | any[]

The tabs to display, each represented as a TabItem component.

import { Text } from "react-native";
<TabView>
<TabItem title="Overview">
<Text>Overview Content</Text>
</TabItem>
<TabItem title="Details">
<Text>Details Content</Text>
</TabItem>
</TabView>

scrollable

boolean

Determines if the tab headers are scrollable.

import { Text } from "react-native";
<TabView scrollable>
<TabItem title="Item 1">
<Text>Tab Content 1</Text>
</TabItem>
<TabItem title="Item 2">
<Text>Tab Content 2</Text>
</TabItem>
{/* Add more tabs here */}
</TabView>

headerProps

TabViewHeaderProps

Props to customize the tab header, such as icons and styles.

import { Text } from "react-native";
<TabView
headerProps={{
showIcons: true,
leftIcon: "ArrowLeft",
rightIcon: "ArrowRight",
}}
>
<TabItem title="Item 1">
<Text>Tab Content 1</Text>
</TabItem>
<TabItem title="Item 2">
<Text>Tab Content 2</Text>
</TabItem>
{/* Add more tabs here */}
</TabView>

style

NameTypeDescription
containerViewStyleStyle for the main container of the TabView.
elementViewStyleStyle for the content area of the active tab.

You can style the TabView with the style prop using either an object with named styles or directly provide ViewStyle properties that will be applied to the element (content area).

import { Text } from "react-native";
// Object with named styles
<TabView
style={{
container: { backgroundColor: "#f0f0f0", padding: 20 },
element: { padding: 15 },
}}
>
<TabItem title="Item 1">
<Text>Tab Content 1</Text>
</TabItem>
<TabItem title="Item 2">
<Text>Tab Content 2</Text>
</TabView>

// Direct element styling
<TabView
style={{ padding: 15, backgroundColor: "#f8f9fa", borderRadius: 8 }}
>
<TabItem title="Item 1">
<Text>Tab Content 1</Text>
</TabItem>
<TabItem title="Item 2">
<Text>Tab Content 2</Text>
</TabView>

containerStyle

ViewStyle

Additional style applied directly to the container View.

<TabView containerStyle={{ backgroundColor: "#f5f5f5", borderRadius: 8 }}>
<TabItem title="Item 1">
<Text>Tab Content 1</Text>
</TabItem>
<TabItem title="Item 2">
<Text>Tab Content 2</Text>
</TabView>