Skip to main content

Video Feed Screen

Introduction

The Video Feed Screen (LMFeedVideoFeedScreen) provides an interface for browsing and interacting with video-based feeds. It allows customization of the app bar, video posts, and other components through builders and configurations.


1. LMFeedVideoFeedScreen Widget

File Location:
video_feed_screen.dart

Class Declaration

class LMFeedVideoFeedScreen extends StatefulWidget {
const LMFeedVideoFeedScreen({super.key});


State<LMFeedVideoFeedScreen> createState() => _LMFeedVideoFeedScreenState();
}

Key Features

  • A stateful widget responsible for displaying a video-based feed.
  • Can be customized using builders and configurations for flexibility.

For the complete source code, refer to the GitHub link.


2. LMFeedVideoFeedScreenBuilderDelegate

File Location:
builder.dart

Class Declaration

class LMFeedVideoFeedScreenBuilderDelegate {
const LMFeedVideoFeedScreenBuilderDelegate();
}

The LMFeedVideoFeedScreenBuilderDelegate allows developers to customize various UI components of the video feed screen.

Methods in LMFeedVideoFeedScreenBuilderDelegate

  1. appBarBuilder

    • Builds the app bar for the Video Feed Screen, allowing custom styles and actions.
    Widget appBarBuilder(BuildContext context, LMFeedAppBar appBar)
  2. titleTextBuilder

    • Customizes the title text widget inside the app bar or screen.
    Widget titleTextBuilder(BuildContext context, LMFeedText text)
  3. createPostButtonBuilder

    • Defines the UI for the "Create Post" button, allowing customization.
    Widget createPostButtonBuilder(BuildContext context, LMFeedButton button)
  4. postViewBuilder

    • Builds the layout for displaying video posts in the feed.
    Widget postViewBuilder(
    BuildContext context,
    LMFeedVerticalVideoPost postWidget,
    LMPostViewData postViewData
    )
  5. noItemIndicatorBuilder

    • Provides a custom UI when there are no video posts available.
    Widget noItemIndicatorBuilder(BuildContext context, Widget child)
  6. uploadingPostLoaderBuilder

    • Defines the UI for showing a loader when a video post is uploading.
    Widget uploadingPostLoaderBuilder(BuildContext context, LMFeedLoader loader)
  7. uploadingPostRetryButtonBuilder

    • Builds a retry button to allow users to re-upload a failed video post.
    Widget uploadingPostRetryButtonBuilder(BuildContext context, LMFeedButton button)

Explore the complete list of methods here.


3. LMFeedVideoFeedSettings

File Location:
settings.dart

Class Declaration

class LMFeedVideoFeedSettings {
const LMFeedVideoFeedSettings();
}
  • Purpose: Provides configuration settings for the Video Feed Screen. No additional fields or methods are currently defined.

4. LMFeedVideoFeedStyle

File Location:
styles.dart

Class Declaration

class LMFeedVideoFeedStyle {
const LMFeedVideoFeedStyle();
}
  • Purpose: Defines styling options for the Video Feed Screen. No fields or methods are currently defined.

5. LMFeedVideoFeedConfig

File Location:
config.dart

Class Declaration

class LMFeedVideoFeedConfig {
final LMFeedVideoFeedScreenBuilderDelegate builder;
final LMFeedVideoFeedSettings settings;
final LMFeedVideoFeedStyle style;

const LMFeedVideoFeedConfig({
this.builder = const LMFeedVideoFeedScreenBuilderDelegate(),
this.settings = const LMFeedVideoFeedSettings(),
this.style = const LMFeedVideoFeedStyle(),
});
}

Usage Example

1. Create a Custom Builder

class CustomVideoFeedBuilder extends LMFeedVideoFeedScreenBuilderDelegate {

Widget postViewBuilder(
BuildContext context,
LMFeedVerticalVideoPost postWidget,
LMPostViewData postViewData
) {
return Column(
children: [
Text(postViewData.title),
postWidget,
],
);
}
}

2. Initialize with Custom Configuration

final customVideoFeedConfig = LMFeedVideoFeedConfig(
builder: CustomVideoFeedBuilder(),
);

3. Apply the Updated Configuration

LMFeedCore.instance.initialize(
config: LMFeedConfig(
videoFeedConfig: customVideoFeedConfig,
),
);

6. Summary

The Video Feed Screen provides a user interface for interacting with video-based content. Developers can customize components like app bars, video posts, and upload UI using the LMFeedVideoFeedScreenBuilderDelegate. Configuration options are encapsulated in LMFeedVideoFeedConfig, enabling seamless integration and customization tailored to specific design and functional requirements.