Menu
CoddyTech

Kaydırıcıyla Bir Değer Seçme

Coddy'nin Flutter Journey'sinin Etkileşimli Uygulamalar bölümünün bir parçası. Ders 29 / 34.

Bir Slider, sürükleyerek bir aralıktan sayı seçer. Bir anahtar gibi, value: değerini çizer ve yeni değerle onChanged işlevini çağırır:

Slider(
  value: _size,
  min: 0,
  max: 50,
  divisions: 5,
  onChanged: (double value) {
    setState(() {
      _size = value;
    });
  },
)

min: ve max:, iki uç noktadır. divisions: değerin adımlarla ilerlemesini sağlar: 0'dan 50'ye 5 bölüm, 0, 10, 20, 30, 40 ve 50 anlamına gelir. Bu ayar olmadan aradaki her değer mümkündür. Ayrıca iz üzerine dokunabilirsin; kaydırıcı o noktaya sıçrar.

Değer her zaman bir double olduğundan 20.0 olarak görünür. _size.round() değeri en yakın tam sayıya, yani bir int değerine yuvarlar; bu da 20 olarak görünür.

challenge icon

Görev

Kolay
  • Kaydırıcının hareket etmesini sağla: değerini _volume içinde setState kullanarak sakla.
  • Ses düzeyini altında tam sayı olarak göster: Volume: 20, Volume: 20.0 değil.

Kendin dene

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: const HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  double _volume = 20;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Sound')),
      body: Padding(
        padding: const EdgeInsets.all(24),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            const Icon(Icons.volume_up, size: 64),
            Slider(
              value: _volume,
              min: 0,
              max: 100,
              divisions: 10,
              onChanged: (double value) {},
            ),
            Text('Volume: ?', style: const TextStyle(fontSize: 24)),
          ],
        ),
      ),
    );
  }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Etkileşimli Uygulamalar bölümündeki tüm dersler

Kendi başına pratik yap: Online Flutter derleyicisi