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 軟件包來工作流體滑塊傳送帶。它顯示了具有不同顏色的三流體滑塊,併爲用戶使用了不同的工作屬性。它會顯示在您的設備上。

屬性

實現

  1. 添加依賴

    將依賴項添加到 pubspec.yaml 文件。

    flutter_spinwheel:^ 0.1.0
  2. 導入

    import 'package:flutter_spinwheel/flutter_spinwheel.dart';
  3. 執行 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