Appearance
AppearanceManager
This singleton class is used to manage the appearance of the Story Reader.
To call any method, you need to get an instance of this class:
await AppearanceManager.instance.methodName();
Story Reader customization
Change appearance of story reader:
- Close button position
- Timer gradient
- Reader background
- Reader corner radius
- Reader presentation style
- Reader scroll animation
Close button position
In the story reader, you can control the position of the close button. Available positions:
Position.topLeftPosition.topRightPosition.bottomLeftPosition.bottomRight
Future<void> changeCloseButtonPosition(Position position) async {
await AppearanceManager.instance.setClosePosition(position);
}
Reader timer gradient
To Enable/disable Timer gradient:
Future<void> enableTimerGradient() async {
await AppearanceManager.instance.setTimerGradientEnable(true);
}
Get state:
final Future<bool> timerGradientEnabledFuture = AppearanceManager.instance.getTimerGradientEnable();
Set gradient with colors and locations:
Future<void> changeColor() async {
const gradient = LinearGradient(
colors: [Colors.purple, Colors.amber], stops: [0.1, 0.3]);
await AppearanceManager.instance.setTimerGradient(
colors: gradient.colors.map((it) => it.value).toList(),
locations: gradient.stops ?? [],
);
}
Reader background
To change the background color of story reader:
Future<void> setBackgroundColor(Color color) async {
await AppearanceManager.instance.setReaderBackgroundColor(color);
}
Reader corner radius
Future<void> setCornerRadius() async {
await AppearanceManager.instance.setReaderCornerRadius(16);
}
Presentation style
The reader can be shown in two types of animation:
- fade - alpha animation from 0 to 1;
- modal - showing the reader from the bottom of the screen;
- zoom - animation of zooming out from the story cell;
Future<void> setPresentationStyle() async {
await AppearanceManager.instance.setReaderPresentationStyle(PresentationStyle.modal);
}
Scroll animation
Scrolling through stories in the reader can be represented by several animations:
- flat - simple sequential tiling
- cover - overlapping the previous story with the next one with the effect of parallax
- cube - each story is on the side of the cube
Setting the type of animation is carried out after initializing the library.
Future<void> setReaderScrollStyle() async {
await AppearanceManager.instance.setReaderScrollStyle(ScrollStyle.cube);
}
Reader buttons
Show/hide buttons
To show or hide buttons for story reader, you can use these methods:
- likes/dislikes
Future<void> enableLikeButtons(bool enabled) async {
await AppearanceManager.instance.setHasLike(true);
}
- favorite
Future<void> enableFavoritesButton(bool enabled) async {
await AppearanceManager.instance.setHasFavorites(true);
}
- share
Future<void> enableShareButton(bool enabled) async {
await AppearanceManager.instance.setHasShare(true);
}
Changing icons
The bottom panel icons of story reader can be replaced by images from assets. Each button has two states: normal and selected.
::: warning SDK does not support working with SVG files. Use png, jpg or jpeg files. Make sure icons fit 24x24 px and resolution-aware . :::
| Method | Params | Description |
|---|---|---|
setLikeIcon | String iconPath, String selectedIconPath | Sets like icons |
setDislikeIcon | String iconPath, String selectedIconPath | Sets dislike icons |
setFavoriteIcon | String iconPath, String selectedIconPath | Sets favorite icons |
setShareIcon | String iconPath, String selectedIconPath | Sets share icons |
setCloseIcon | String iconPath | Sets close icon |
setSoundIcon | String iconPath, String selectedIconPath | Sets sound icon |
Usage
Future<void> changeCloseIcon() async {
final assetPath = 'assets/icons/ic_close.png';
await AppearanceManager.instance.setCloseIcon(assetPath);
}
Cover quality
To change the story list covers image quality, use setCoverQuality method:
Future<void> changeCoverQuality() async {
await AppearanceManager.instance.setCoverQuality(CoverQuality.High);
}
If not set—the SDK will use medium image quality. Available CoverQuality variations:
enum CoverQuality {
Medium,
High
}
Goods item appearance
To customize appearance of goods items (v1), call setGoodsItemAppearance() method. More info
in Goods section.