Pre-stream Setup | Co-Host Interaction | Audience Interaction | Live Room Management |
![]() | ![]() | ![]() | ![]() |
TUILiveRoomAnchorWidget has built-in complete UI and business logic for live-streaming scenarios. This component does not support floating window mode. If you need floating window functionality, navigate to Add Floating Window (Host Page). Simply configure the entry point for invoking TUILiveRoomAnchorWidget (based on your business logic), then use one of the following methods to navigate to or embed the host page within your Widget tree:import 'package:tencent_live_uikit/tencent_live_uikit.dart';// navigate to the host webpageNavigator.push(context, MaterialPageRoute(builder: (BuildContext context) {final roomId = "test_live_room_id";return TUILiveRoomAnchorWidget(roomId: roomId);}));
// --- Select a way to integrate based on your Widget tree structure ---// [option one] as the only child Widget (single subtree)// Suitable for containers like Container, Padding that usually only contain one child WidgetContainer(child: TUILiveRoomAnchorWidget(roomId: roomId) // integrate the host page here)// [option two] as one of multiple child Widgets (multi-subtree)// Suitable for layouts like Column, Row, Stack that can contain multiple child WidgetsStack(children: [YourOtherWidget(), // your other child WidgetTUILiveRoomAnchorWidget(roomId: roomId), // integrate the host page hereYourOtherWidget(), // your other child Widget])
TUILiveRoomAudienceOverlay enables floating window mode for the audience viewing page. During a live stream, you can switch between in-app and out-of-app (Picture-in-Picture) floating window modes. TUILiveRoomAudienceOverlay is built using Flutter’s official Overlay API and native Picture-in-Picture. To integrate:import 'package:tencent_live_uikit/tencent_live_uikit.dart';// Navigate to the Anchor webpageNavigator.push(context, MaterialPageRoute(builder: (BuildContext context) {final roomId = "test_live_room_id";return TUILiveRoomAnchorOverlay(roomId: roomId);}));
TUILiveRoomAudienceOverlay cannot be embedded as a child widget in container widgets (such as Container, Stack, etc.); it must be navigated to as a standalone page. This is because Overlay is used internally, and LiveKit needs to control the entire Overlay page to switch floating window modes.


Name | Dynamic Grid Layout | Floating Window Layout | Fixed Grid Layout | Fixed Window Layout |
Template ID | 600 | 601 | 800 | 801 |
Description | Default layout. Grid size automatically adjusts based on the number of co-hosts. | Co-hosts are displayed in floating windows. | Fixed number of co-hosts, each in a dedicated grid. | Fixed number of co-hosts, each in a dedicated window. |
Preview | ![]() | ![]() | ![]() | ![]() |
livekit/lib/common/language/i10n/ directory to modify the text:
livekit_en.arb: English Text.livekit_zh.arb: Simplified Chinese Text.livekit_zh_Hant.arb: Traditional Chinese Text.flutter gen-l10n in the command line to regenerate the localization code.livekit/assets/images/ directory. To update icons, simply replace the PNG files in this folder.
Feature | Description | Integration Guide |
Audience Viewing | Audience can watch live streaming after entering the anchor's live streaming room, with features like audience mic connection, live room information, online audience, and bullet screen display. | |
Live Stream List | Display the live stream list interface and features, including the live stream list and room information display. |
iOS | Android |
![]() | ![]() |

TUILiveRoomAudienceOverlay, ensure that pop-up components (such as BottomSheet, Dialog, etc.) use the rootNavigator context (recommended: Global.appContext()). secondaryNavigator. Pop-ups using the secondaryNavigator context will be obstructed by the Overlay because, on the same Navigator, the Overlay layer is above regular pages, allowing it to float above them. Using the rootNavigator ensures pop-ups display correctly above the Overlay.Feedback