「Flutter」是Google的UI工具包,可通過一個代碼庫建構漂亮的,本機編譯的移動,Web和桌面應用程式。
在在本部落格中,我們将探讨「Flutter中」 的**Reviews Slider。**我們将看到如何在flutter應用程式中使用「reviews_slider」包來實作帶有生動變化的微笑的示範程式Reviews Slider示範程式。
pub位址:https://pub.dev/packages/reviews_slider
評論滑塊
評論滑塊是一個帶有變化的微笑的動畫小部件,用于收集使用者調查得分。當使用者點選微笑并向左或向右旋轉或向左旋轉時,然後更改微笑形狀。
該示範視訊示範了如何在flutter中使用評論滑塊。它顯示了使用「Flutter」應用程式中的「reviews_slider」包,評論滑塊将如何工作。當使用者從左到右或從右到左旋轉微笑并更改形狀時,它顯示了一個具有變化的微笑的動畫小部件。它會顯示在您的裝置上。
評論滑塊的一些參數:
- **onChange:**此參數用于在指針更改滑塊的值并且不再與螢幕接觸時觸發。
- **options:**此參數用于評論标題,例如好,差,好等。
- **optionStyle:**此參數用于審閱标題的文本樣式,例如顔色,大小等。
- **initialValue:**此參數用于滑塊的初始值。預設值init值為2。
使用
添加依賴
reviews_slider: ^1.0.5
複制
引入
import 'package:reviews_slider/reviews_slider.dart';
複制
運作指令:「flutter packages get」
啟用「AndriodX」
org.gradle.jvmargs=-Xmx1536M
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true
複制
在libs目錄下建立 「reviews_demo.dart」 檔案
首先,我們将建立一個整數變量。
int selectedValue1;
複制
我們将在void **onChange1()「方法上添加一個變量。在此方法中,我們将添加」setState()。**在此setState中,我們将添加等于該值的selectedValue1變量。
void onChange1(int value){
setState((){
selectedValue1 = value;
});
}
複制
我們将添加一個列小部件,并且mainAxisAlignment作為中心,并且crossAxisAlignment已啟動。我們将添加一個文本和「ReviewSlider()。「在ReviewSlider中,我們将添加」optionStyle」表示評論标題的文本樣式,例如顔色,大小等,而「onChange則」意味着隻要指針更改了滑塊的值并且不再與螢幕接觸,就會觸發。另外,我們将添加文本selectedValue1.toString()。它将顯示在裝置上。
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
'How was the service you received?',
style: TextStyle(color: Colors.black,
fontSize: 18),
),
SizedBox(height: 20),
ReviewSlider(
optionStyle: TextStyle(
color: Colors.red,
fontWeight: FontWeight.bold,
),
onChange: onChange1,
),
Text(selectedValue1.toString(),style: TextStyle(color: Colors.red),
),
],
),
複制
img
現在,我們将添加多個具有不同顔色的文本樣式的滑塊。
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
'How was the service you received?',
style: TextStyle(color: Colors.black,
fontSize: 18),
),
SizedBox(height: 20),
ReviewSlider(
optionStyle: TextStyle(
color: Colors.red,
fontWeight: FontWeight.bold,
),
onChange: onChange1,
),
Text(selectedValue1.toString(),style: TextStyle(color: Colors.red),),
SizedBox(height: 20),
Text(
'Quality of our product?',
style: TextStyle(color: Colors.black, fontSize: 18),
),
SizedBox(height: 20),
ReviewSlider(
optionStyle: TextStyle(
color: Colors.orange,
fontWeight: FontWeight.bold,
),
onChange: onChange2,
initialValue: 1,
),
Text(selectedValue2.toString(),style: TextStyle(color: Colors.orange)),
SizedBox(height: 20),
Text(
'Price of our product?',
style: TextStyle(color: Colors.black, fontSize: 18),
),
SizedBox(height: 20),
ReviewSlider(
optionStyle: TextStyle(
color: Colors.black,
fontWeight: FontWeight.bold,
),
onChange: onChange3,
initialValue: 3,
),
Text(selectedValue3.toString(),style: TextStyle(color: Colors.black)),
],
),
複制
我們将添加三個帶有不同文本顔色,不同的initialValue和不同标題的評論滑塊。當我們運作應用程式時,我們應該獲得螢幕的輸出,如螢幕下方的截圖所示。
完整實作
import 'package:flutter/material.dart';
import 'package:reviews_slider/reviews_slider.dart';
class ReviewsDemo extends StatefulWidget {
@override
_ReviewsDemoState createState() => _ReviewsDemoState();
}
class _ReviewsDemoState extends State<ReviewsDemo> {
int selectedValue1;
int selectedValue2;
int selectedValue3;
void onChange1(int value) {
setState(() {
selectedValue1 = value;
});
}
void onChange2(int value) {
setState(() {
selectedValue2 = value;
});
}
void onChange3(int value) {
setState(() {
selectedValue3 = value;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.blueGrey[50],
appBar: AppBar(
backgroundColor: Colors.cyan,
title: Text("Flutter Reviews Slider Demo"),
automaticallyImplyLeading: false,
),
body: SafeArea(
child: Padding(
padding: const EdgeInsets.only(left:18.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
'How was the service you received?',
style: TextStyle(color: Colors.black,
fontSize: 18),
),
SizedBox(height: 20),
ReviewSlider(
optionStyle: TextStyle(
color: Colors.red,
fontWeight: FontWeight.bold,
),
onChange: onChange1,
),
Text(selectedValue1.toString(),style: TextStyle(color: Colors.red),),
SizedBox(height: 20),
Text(
'Quality of our product?',
style: TextStyle(color: Colors.black, fontSize: 18),
),
SizedBox(height: 20),
ReviewSlider(
optionStyle: TextStyle(
color: Colors.orange,
fontWeight: FontWeight.bold,
),
onChange: onChange2,
initialValue: 1,
),
Text(selectedValue2.toString(),style: TextStyle(color: Colors.orange)),
SizedBox(height: 20),
Text(
'Price of our product?',
style: TextStyle(color: Colors.black, fontSize: 18),
),
SizedBox(height: 20),
ReviewSlider(
optionStyle: TextStyle(
color: Colors.black,
fontWeight: FontWeight.bold,
),
onChange: onChange3,
initialValue: 3,
),
Text(selectedValue3.toString(),style: TextStyle(color: Colors.black)),
],
),
),
),
);
}
}
複制
原文連結:https://medium.com/flutterdevs/review-slider-in-flutter-d0b04046b4eb