
react-native-safe-area-context is installed. If it is missing, install it with:yarn add react-native-safe-area-context
useState to demonstrate simple page switching. For production apps, it is recommended to use navigation libraries like React Navigation for page management. To understand how to integrate navigation libraries, refer to React Navigation official documentation./*** Simple navigation example - using useState to manage page transitions*/import React, { useState } from 'react';import { View, Button, StyleSheet } from 'react-native';import { SafeAreaProvider } from 'react-native-safe-area-context';import { LiveListPage } from 'react-native-tuikit-live';type PageType = 'home' | 'liveList' | 'liveEnd' | 'liveAudience';function MyApp() {const [currentPage, setCurrentPage] = useState<PageType>('home');// Navigate to the Live Stream List pageconst handleJumpLiveList = async () => {setCurrentPage('liveList');};// Return from the Live Stream List pageconst handleBackFromLiveList = () => {setCurrentPage('home');};return (<SafeAreaProvider>{currentPage === 'home' && (<View style={styles.container}><Button title="Go to Live Stream List" onPress={handleJumpLiveList} /></View>)}{currentPage === 'liveList' && (<LiveListPageonBack={handleBackFromLiveList}/>)}{currentPage === 'liveEnd' && (<View style={styles.container}><Button title="Back to Home" onPress={() => setCurrentPage('home')} /></View>)}</SafeAreaProvider>);}const styles = StyleSheet.create({container: {flex: 1,justifyContent: 'center',alignItems: 'center',},});export default MyApp;
TUILiveKit supports flexible customization of the Live Stream List page’s features and appearance, allowing you to tailor the layout to your business requirements.tuikit-atomic-x/src/components/LiveList.tsx file. The default configuration is as follows:const CARD_WIDTH = (SCREEN_WIDTH - CONTAINER_PADDING * 2 - CARD_GAP) / 2; // two per line// Group the live stream list with two elements per lineconst groupedLiveList = useMemo(() => {const groups: LiveInfoParam[][] = [];for (let i = 0; i < filteredLiveList.length; i += 2) {groups.push(filteredLiveList.slice(i, i + 2));}return groups;}, [filteredLiveList]);
const CARD_WIDTH = (SCREEN_WIDTH - CONTAINER_PADDING * 2); // one per lineconst groupedLiveList = useMemo(() => {const groups: LiveInfoParam[][] = [];for (let i = 0; i < filteredLiveList.length; i += 1) { // change 2 to 1groups.push(filteredLiveList.slice(i, i + 1)); // change 2 to 1}return groups;}, [filteredLiveList]);

Feature | Description | Integration Guide |
Host Streaming | Implements the complete host streaming workflow, including pre-stream setup and interactive features after going live. | |
Audience Viewing | Enables audience members to enter the host’s live room and watch the stream, supporting guest co-hosting, live room details, online audience list, and live comments. |
Feedback