Poll Result Screen
Introduction
The Poll Result Screen (LMFeedPollResultScreen) displays the results of a poll, including the options, votes, and analysis. It provides customization points for the appearance and behavior of result visualization.
1. LMFeedPollResultScreen Widget
File Location:
poll_result_screen.dart
Class Declaration
class LMFeedPollResultScreen extends StatefulWidget {
/// A screen widget that displays poll results.
const LMFeedPollResultScreen({
super.key,
required this.pollId,
required this.pollOptions,
this.pollTitle,
this.selectedOptionId,
this.noItemsFoundIndicatorBuilder,
this.firstPageProgressIndicatorBuilder,
this.newPageProgressIndicatorBuilder,
this.noMoreItemsIndicatorBuilder,
this.newPageErrorIndicatorBuilder,
this.firstPageErrorIndicatorBuilder,
this.tabWidth,
});
State<LMFeedPollResultScreen> createState() => _LMFeedPollResultScreenState();
}
Key Parameters
key(Key?, optional): A key to uniquely identify the widget.pollId(String, required): The ID of the poll to be displayed.pollTitle(String?, optional): The title of the poll.pollOptions(List<LMPollOptionViewData>, required): The options available in the poll.selectedOptionId(String?, optional): The ID of the selected option.
For the complete source code, refer to the GitHub link.
2. LMFeedPollResultBuilderDelegate
File Location:
builder.dart
Class Declaration
class LMFeedPollResultBuilderDelegate extends LMFeedWidgetBuilderDelegate {
const LMFeedPollResultBuilderDelegate();
}
The LMFeedPollResultBuilderDelegate allows developers to customize the appearance of poll results, including chart styles, vote counts, and other visual elements.
3. LMFeedPollResultSetting
File Location:
settings.dart
class LMFeedPollResultSetting {
const LMFeedPollResultSetting();
}
- Purpose: Provides configuration settings for the Poll Result Screen. No additional fields or methods are currently defined.
4. LMFeedPollResultStyle
File Location:
style.dart
class LMFeedPollResultStyle {
const LMFeedPollResultStyle();
}
- Purpose: Defines styling options for the Poll Result Screen. No fields or methods are currently defined.
5. LMFeedPollResultConfig
File Location:
config.dart
Class Declaration
class LMFeedPollResultConfig {
final LMFeedPollResultBuilderDelegate builder;
final LMFeedPollResultSetting setting;
final LMFeedPollResultStyle style;
const LMFeedPollResultConfig({
this.builder = const LMFeedPollResultBuilderDelegate(),
this.setting = const LMFeedPollResultSetting(),
this.style = const LMFeedPollResultStyle(),
});
}
Usage Example: Injecting Custom Configuration
Create a Custom Builder:
class CustomPollResultBuilder extends LMFeedPollResultBuilderDelegate {
Widget pollWidgetBuilder(BuildContext context, LMFeedPoll pollWidget) {
return pollWidget.copyWith();
}
}Pass Custom Style or Setting along with Builder:
final customStyle = LMFeedPollResultStyle();
final customSetting = LMFeedPollResultSetting();Inject the Custom Builder, Style, or Setting into the Config:
final pollResultConfig = LMFeedPollResultConfig(
builder: CustomPollResultBuilder(),
setting: customSetting,
style: customStyle,
);Initialize with Custom Config:
LMFeedCore.instance.initialize(
config: LMFeedConfig(
pollResultConfig: pollResultConfig,
),
);
6. Summary
The Poll Result Screen provides a user interface for displaying poll results. Developers can customize components like charts, vote counts, and summaries using the LMFeedPollResultBuilderDelegate. Configuration options are encapsulated in LMFeedPollResultConfig, allowing seamless integration of customizations tailored to specific design and functional requirements.