搜索插件、代码仓与 APP 分类

slide_switcher 封面
插件详情v1.1.2

slide_switcher

用于创建具有广泛自定义选项的切换小部件的包

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
581
喜欢数
60
Pub 分数
160

安装插件

flutter pub add slide_switcher

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个用于构建可自定义滑动开关控件的 Flutter 包,提供对外观和行为的广泛控制。它使开发者能够创建带有平滑动画、自定义颜色、形状和大小的交互式切换开关。非常适合用于设置面板、主题切换或任何需要视觉开/关状态变化的 UI。该包支持所有主要平台,包括移动设备、网页和桌面端,确保跨平台体验的一致性。通过直观的配置选项,它简化了现代、响应式切换界面的实现。

适合场景

  • 主题切换
  • 设置面板
  • 开/关控制
  • 表单输入
  • 用户偏好选择

主要特点

  • 可自定义颜色
  • 流畅的动画
  • 多种尺寸选项
  • 跨平台支持
  • 可配置的轨道和滑块
  • 状态持久化

适合对象

  • 开发人员构建设置 UI
  • 需要交互式切换的设计师
  • 带有深色/浅色模式的应用程序
  • 跨平台应用
  • 自定义表单组件

使用建议

  • 需要理解 Flutter 小部件树
  • 可能需要额外的样式来处理复杂的布局
  • 大量实例带来的性能影响
  • 有限的内置辅助功能
  • 未针对高频状态更改进行优化

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

English

Library for creating and customizing sliders

Widget customization variations

Here are some examples of the library's features:

First I suggest you get familiar with what container and sliders are in the library

The library lets you change the style of containers and sliders using the fields in the table below

List and description of the functionality:

Fields Description
children Widgets that placed inside sliders / required
onSelect The function takes an index variable that changes depending on the index of the current slider / required
containerHeight Container height / required
containerWight Container width / required
slidersColors The color of each slider. A single color in the array will fill all sliders / white by default
slidersGradients The gradient of each slider. A single gradient in the array will fill all sliders
containerBorder Container border widget
slidersBorder Slider border widget
containerBorderRadius Container corner rounding radius
containerColor Container fill color / grey by default
indents Indents between the container and sliders (the same on all sides) / 0 by default
direction Defining the direction of the slider swipe / horizontal by default
isAllContainerTap A shadow cast by a box
containerBoxShadow Ability to tap on the current slider and change its index to the opposite (available only for 2 children) / false by default
initialIndex Initial index of the slider, which is rendering for the first time

Creating your own SlideSwitcher

SlideSwitcher is an ordinary widget. In order to create it you have to specify the obligatory parameters: "children" - texts, icons, pictures and any other widgets that will be stored in the sliders; "onSelect" - the function which will be executed during the change of the focused slider; "containerHeight" - container height; "containerWight" - container width. To customize the widget you should use the optional parameters from the table above.

Minimum functionality:
SlideSwitcher(
  children: [
    Text('First'),
    Text('Second'),
  ],
  onSelect: (index) {},
  containerHeight: 40,
  containerWight: 350,
),

To change the state of the screen it is recommended to create a variable storing the index of the current slider and call its setState in the "onSelect" function

int switcherIndex1 = 0;

Column(
  children: [
    SlideSwitcher(
      children: [
        Text('First'),
        Text('Second'),
      ],
      onSelect: (index) => setState(() => switcherIndex1 = index),
      containerHeight: 40,
      containerWight: 350,
    ),
    const SizedBox(height: 20),
    if (switcherIndex1 == 0) ...[
      Container(height: 100, width: 100, color: Colors.red,)
    ]
    else ...[
      Container(height: 100, width: 100, color: Colors.green,)
    ],
  ],
),

List of exceptions for cases that are not supported by the library:

List of exceptions
All widgets from the list of "children" do not fit into the given container size
The "isAllContainerTap" parameter can be "true" only when "children" length is 2

The first error from the table occurs when the smallest side of the container (determined by the direction of the swipe) multiplied by the length of the "children" by half is greater than the largest side of the container. Only occurs when the borders of the container are maximum rounded

NEW

Vertical Switchers.

The direction parameter of this library is responsible for the direction of the switch's movement. Just add direction: Axis.vertical to your widget:

SlideSwitcher(
  children: [
    Text('First'),
    Text('Second'),
  ],
  onSelect: (index) {},
  containerHeight: 350,
  containerWight: 40,
  direction: Axis.vertical
),

Empty Switchers

If you need a switch with two children to determine whether to turn something on or off, then add empty containers to children parameters and parameter isAllContainerTap: true:

SlideSwitcher(
  children: [
    Container(),
    Container(),
  ],
  onSelect: (index) {},
  isAllContainerTap: true,
  containerHeight: 30,
  containerWight: 60,
),

Google form for wishes and suggestions for the package

所属分类

源码仓库

使用此插件的项目

暂无相关数据。