Bu yazımda, Flutterın random() fonksiyonunu kullanarak nasıl rastgele sayılar oluşturacağınızı göstereceğim. Bu fonksiyon verilen max aralıktan sayı üretmektedir. Fakat bu yazımda min ve max rasgele sayı aralığını tanımlayacağım. Yani rastgele sayı ürettiğimizde oluşturulan sayı max ve min aralık arasında olacaktır.
#1 İlk olarak material.dart ve dart: math paketini içe aktarın.
import 'package:flutter/material.dart'; import 'dart:math';
#2 void main runApp() metodunu oluşturup MyApp sınıfını çağırıyoruz.
void main() => runApp(MyApp());
#3 Daha sonra StatelessWidget oluşturuyoruz.
class MyApp extends StatelessWidget { }
#4 randomNumber() isimli bir fonksiyonu oluşturuyoruz. Daha sonra min ve max isimli 2 int tipinde değişken oluşturuyoruz ve değer alanına belirlediğimiz min ve max değerlerini yazıyoruz.
void randomNumber() { var random = new Random(); int minValue = 10; int maxValue = 200; int result = min + random.nextInt(maxValue - minValue); print(result); }
#5 Widget Build -> Material App -> Scaffold Widget -> Center Widget -> Column Widget, oluşturun. Bu alanda bir buton oluşturup bunun onPress işlevine oluşturduğumuz fonksiyonu ekleyeceğiz.(randomNumber())
Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Container( margin: const EdgeInsets.fromLTRB(20, 10, 20, 10), child: RaisedButton( onPressed: () => randomNumber(), child: Text( 'Generate', textAlign: TextAlign.center, style: TextStyle(fontSize: 20), ), textColor: Colors.white, color: Colors.black, padding: EdgeInsets.fromLTRB(12, 12, 12, 12), )), ])))); }
#5 main.dart
import 'package:flutter/material.dart'; import 'dart:math'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { void randomNumber() { var random = new Random(); int minValue = 10; int maxValue = 200; int result = min + random.nextInt(maxValue - minValue); print(result); } @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Container( margin: const EdgeInsets.fromLTRB(20, 10, 20, 10), child: RaisedButton( onPressed: () => randomNumber(), child: Text( 'Generate', textAlign: TextAlign.center, style: TextStyle(fontSize: 20), ), textColor: Colors.white, color: Colors.black, padding: EdgeInsets.fromLTRB(12, 12, 12, 12), )), ])))); } }
Kod Çıktısı:
#Bonus
Sonucu ekranda yazdırmak için;
randomNumber.dart
import 'package:flutter/material.dart'; import 'dart:math'; class RandomNumber extends StatefulWidget { @override _RandomNumberState createState() => _RandomNumberState(); } class _RandomNumberState extends State<RandomNumber> { int result = 0; void randomNumber() { var random = new Random(); int minValue = 10; int maxValue = 200; setState(() { result = minValue + random.nextInt(maxValue - minValue); }); print(result); } @override Widget build(BuildContext context) { return Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Container( margin: const EdgeInsets.fromLTRB(20, 10, 20, 10), // ignore: deprecated_member_use child: RaisedButton( onPressed: () => randomNumber(), child: Text( 'Generate', style: TextStyle(fontSize: 20), ), textColor: Colors.white, color: Colors.black, padding: EdgeInsets.fromLTRB(12, 12, 12, 12), )), Container( child: Text(result.toString()), ), ])); } }
main.dart
import 'package:flutter/material.dart'; import 'dart:math'; import 'package:generate_random_number/randomNumber.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { void randomNumber() { var random = new Random(); int minValue = 10; int maxValue = 200; int result = minValue + random.nextInt(maxValue - minValue); print(result); } @override Widget build(BuildContext context) { return MaterialApp(home: Scaffold(body: RandomNumber())); } }
Kod Çıktısı: