Flutter 流體滑塊
原文鏈接:https://medium.com/flutterdevs/explore-fluid-slider-in-flutter-ba6bf2dfa21
在本文中,我們將 ** 探討 Flutter 中的 Fluid Slider。** 我們還將在 flutter 應用程序中使用 **flutter_fluid_slider** 包來實現流體滑塊和屬性的演示程序。
地址:https://pub.dev/packages/flutter_fluid_slider
簡介
流體滑塊是一種流體設計滑塊,其工作原理與 “滑塊” 材料小部件非常相似。它用於從一系列值中進行選擇。下面的演示視頻顯示瞭如何在顫動中創建流暢的滑塊。它顯示瞭如何在 flutter 應用程序中使用 flutter_fluid_slider 軟件包來工作流體滑塊傳送帶。它顯示了具有不同顏色的三流體滑塊,併爲用戶使用了不同的工作屬性。它會顯示在您的設備上。
屬性
-
onChanged: 此屬性是必需的,並且在用戶開始爲滑塊選擇新值時調用該屬性。傳遞的值將是滑塊開始更改之前的最後一個 [value]。
-
value: 此屬性是必需的,並且用於此滑塊的當前選定值。在與該值相對應的位置上繪製滑塊的拇指。
-
min: 此屬性用於用戶可以選擇的最小值。默認值爲 0.0。必須小於或等於 [max]。
-
max: 此屬性用於用戶可以選擇的最大值。默認爲 1.0。必須大於或等於 [min]。
-
slideColor: 此屬性用於滑塊的顏色。如果未提供,
primaryColor
將應用祖先主題。 -
thumbColor: 此屬性用於拇指的顏色。、如果未提供,將應用 [顏色爲白色]。
-
onChangeStart: 當用戶開始爲滑塊選擇新值時,將調用此屬性。
-
onChangeEnd: 當 用戶爲滑塊選擇新值時,將調用此屬性。
實現
-
添加依賴
將依賴項添加到 pubspec.yaml 文件。
flutter_spinwheel:^ 0.1.0
-
導入
import 'package:flutter_spinwheel/flutter_spinwheel.dart';
-
執行 flutter packages get 命令。
首先,我們將爲三個流體滑塊創建三個 double 變量。
double _value1 = 0.0;
double _value2 = 20.0;
double _value3 = 1.0;
我們將創建一個簡單的 FluidSlider()。在內部,我們將添加值,表示此滑塊當前選擇的值。添加將爲流體滑塊創建的變量。當用戶開始爲滑塊選擇新值時,我們將添加 onChanged 方式調用。在內部,我們將添加 setState()。 在 setState 中,我們將添加一個等於新值的變量。
FluidSlider(
value: _value1,
onChanged: (double newValue) {
setState(() {
_value1 = newValue;
});
},
min: 0.0,
max: 100.0,
sliderColor: Colors.cyan,
),
我們將添加一個最小值和最大值。另外,我們將添加滑塊顏色。當我們運行應用程序時,我們應該獲得屏幕的輸出,如屏幕下方的截圖所示。
現在,我們將創建另一個 FluidSlider()。在內部,我們將在 value 方法中添加一個變量;max 表示最大值 是用戶可以選擇的值,並且大於或等於最小值。添加滑塊顏色和拇指顏色。在此滑塊中,我們將添加開始意味着小部件將顯示爲最小標籤。我們將顯示 “money-off” 圖標。如果未提供,則該min
值顯示爲文本。
FluidSlider(
value: _value2,
onChanged: (double newValue) {
setState(() {
_value2 = newValue;
});
},
min: 0.0,
max: 200.0,
sliderColor: Colors.pinkAccent,
thumbColor: Colors.amber[200],
start: Icon(
Icons.money_off,
color: Colors.white,
),
end: Icon(
Icons.attach_money,
color: Colors.white,
),
),
我們將添加末尾意味着小部件將顯示爲最大標籤。我們將顯示一個附着金錢圖標。如果未提供,則該max
值將顯示爲文本。當我們運行應用程序時,我們應該獲得屏幕的輸出,如屏幕下方的截圖所示。
現在,我們將創建第三個 “流體” 滑塊。在此滑塊中,我們將在 value 方法中添加一個變量,滑塊顏色,onChanged,mapValueToString 表示將雙精度值映射到 String 文本的回調函數。如果爲 null,則基於 [showDecimalValue] 將該值轉換爲 String。我們將創建一個字符串數字 1 到 10 的列表並返回數字。
FluidSlider(
value: _value3,
sliderColor: Colors.teal,
onChanged: (double newValue) {
setState(() {
_value3 = newValue;
});
},
min: 1.0,
max: 10.0,
mapValueToString: (double value) {
List<String> numbers = ['1', '2', '3', '4', '5','6', '7', '8', '9', '10'];
return numbers[value.toInt() - 1];
}),
因此,我們將在這些滑塊中使用一些屬性。可以通過多種方式和特性將這些滑塊用於 Flutter 應用程序。運行應用程序時,我們應該獲得屏幕的最終輸出,如下。
完整實現
import 'package:flutter/material.dart';
import 'package:flutter_fluid_slider/flutter_fluid_slider.dart';
class HomePage extends StatefulWidget {
@override
HomePageState createState() {
return new HomePageState();
}
}
class HomePageState extends State<HomePage> {
double _value1 = 0.0;
double _value2 = 20.0;
double _value3 = 1.0;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Flutter Fluid Slider Demo"),
automaticallyImplyLeading: false,
),
body: Padding(
padding: const EdgeInsets.all(30.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
FluidSlider(
value: _value1,
onChanged: (double newValue) {
setState(() {
_value1 = newValue;
});
},
min: 0.0,
max: 100.0,
sliderColor: Colors.cyan,
),
SizedBox(
height: 50.0,
),
FluidSlider(
value: _value2,
onChanged: (double newValue) {
setState(() {
_value2 = newValue;
});
},
min: 0.0,
max: 200.0,
sliderColor: Colors.pinkAccent,
thumbColor: Colors.amber[200],
start: Icon(
Icons.money_off,
color: Colors.white,
),
end: Icon(
Icons.attach_money,
color: Colors.white,
),
),
SizedBox(
height: 50.0,
),
FluidSlider(
value: _value3,
sliderColor: Colors.teal,
onChanged: (double newValue) {
setState(() {
_value3 = newValue;
});
},
min: 1.0,
max: 10.0,
mapValueToString: (double value) {
List<String> numbers = ['1', '2', '3', '4', '5','6', '7', '8', '9', '10'];
return numbers[value.toInt() - 1];
}),
],
),
),
);
}
}
總結
我希望這個博客將爲您提供關於審理了足夠的信息, 在流體滑塊在你的撲項目 。 我們將向您展示什麼是 Fluid Slider?一些流體滑塊屬性,製作一個工作流體滑塊的演示程序,並在 flutter 應用程序中使用 flutter_fluid_slider 軟件包顯示三個具有不同顏色和屬性的滑塊。因此,請嘗試一下。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/ThplMUi_FMjcfMq8Ol8VZg