Here is a step-by-step guide on how to create a vertical tab layout in React Native:
-
Set up the starter app:
- Go to snack.expo.dev in your web browser and create a new project.
- Delete all the code in the App.js file.
- Import the necessary components, including
View
,Text
,TouchableOpacity
, andFlatList
.
-
Define the tab labels and data:
- Create an array of objects that define the tab labels and corresponding data.
- Use the
setStatusFilter
function to update the active status when a tab is clicked.
-
Set up the functionality for React Native tab elements:
- Define the
App
component function. - Inside the
App
component, set the tab to “Home” by default. - Use the
map
function to loop through the tab items and render aTouchableOpacity
element with the tab label.
- Define the
-
Style the responsive React Native vertical tab layout:
- Use CSS flexbox to achieve a responsive layout.
- Define the styles for the tab menu and content list.
-
Render the tab menu and content list:
- Use the
FlatList
component to render the data related to the active tab. - Call the
renderItem
function to render the title and text related to the active tab.
- Use the
-
Test the app:
- Run the app on different devices to ensure the layout is responsive and looks similar on various screens.
Here is some sample code to get you started:
“`jsx
import React, { useState } from ‘react’;
import { View, Text, TouchableOpacity, FlatList } from ‘react-native’;
const listTab = [
{ status: ‘Home’ },
{ status: ‘About’ },
{ status: ‘Contact’ },
];
const dataList = [
{ title: ‘Home’, text: ‘This is the home screen’ },
{ title: ‘About’, text: ‘This is the about screen’ },
{ title: ‘Contact’, text: ‘This is the contact screen’ },
];
const App = () => {
const [status, setStatus] = useState(‘Home’);
const setStatusFilter = (status) => {
setStatus(status);
};
return (
{listTab.map((e, index) => (
))}
)}
/>
);
};
const styles = StyleSheet.create({
btnTab: {
padding: 10,
backgroundColor: ‘#ccc’,
},
btnTabActive: {
padding: 10,
backgroundColor: ‘#aaa’,
},
});
export default App;
“`
Note: This is just a basic example to get you started. You’ll need to modify the code to fit your specific use case.