• 03-02-2020, 22:54:42
    #1
    Merhabalar ben Flutter yeni başladım ilk uygulama oluşturduğumuzda çıkan ekranda sayacı 5'den geriye saydırıyorum fakat sayaç 0 a indiğinde floatting action buttonu pasifleştirip sayı textini nasıl değişeceğimi bilemiyorum mantığını çözemedim textlerin bir değişkeni yok gibi javadaki gibi bilen birisi anlatabilir mi?
  • 03-02-2020, 23:13:55
    #2
    Octavia adlı üyeden alıntı: mesajı görüntüle
    Merhabalar ben Flutter yeni başladım ilk uygulama oluşturduğumuzda çıkan ekranda sayacı 5'den geriye saydırıyorum fakat sayaç 0 a indiğinde floatting action buttonu pasifleştirip sayı textini nasıl değişeceğimi bilemiyorum mantığını çözemedim textlerin bir değişkeni yok gibi javadaki gibi bilen birisi anlatabilir mi?
    setStatuss içerisinde if(degisken_adi == 0 ){} kullanarak floatingActionButton visible = false yaparak kullanabilirsiniz. "degisken_adi" yerine başlangıç kodlarını değiştirmediyseniz "_counter" deneyebilirsiniz.
  • 03-02-2020, 23:53:46
    #3
    Selam Octavia,
    1. Öncelikle ekranın bir kullanıcı aksiyonuna göre değişebileceği için bu işte StatefulWidget kullanman gerekiyor.
    2. Counter değişkeni için bir değişken yaratmalısın
    3. FAB click eventinde setState içerisinde bu değişkenini arttırmalısın/azaltmalısın
    4. FAB buttonun visible propertisinide bu counter değişkeninin değerinin 0 a eşit olup olmadığı kontrolü ile yapabilirsin
      Örneğin visible counter == 0 ? true : false) şeklinde
    Kod örneği olarak burada benzer bi kod örneği var.
    https://stackoverflow.com/questions/...ngactionbutton
    Başarılar dilerim
  • 04-02-2020, 00:06:37
    #4
    özek mesaj olarak yazdım ama herkesin faydalanması için buraya da ekliyorum, kabataslak yazdım detaylandırabilirsiniz;
    import 'package:flutter/material.dart';

    void main() => runApp(MyApp());

    class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
    return MaterialApp(
    title: 'Flutter Demo',
    theme: ThemeData(
    primarySwatch: Colors.blue,
    ),
    home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
    }
    }

    class MyHomePage extends StatefulWidget {
    MyHomePage({Key key, this.title}) : super(key: key);
    final String title;

    @override
    _MyHomePageState createState() => _MyHomePageState();
    }

    class _MyHomePageState extends State<MyHomePage> {
    int _counter = 0;
    bool isVisible = true;

    void _incrementCounter() {
    setState(() {
    _counter++;
    if (_counter==5) {
    isVisible = false;
    }
    });
    }

    @override
    Widget build(BuildContext context) {
    if (isVisible) {
    return deneme();
    } else {
    return denemeGorunmez();
    }
    }

    Widget deneme() {
    return Scaffold(
    appBar: AppBar(
    title: Text(widget.title),
    ),
    body: Center(
    child: Column(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
    Text(
    'You have pushed the button this many times: n $_counter',
    ),

    ],
    ),
    ),
    floatingActionButton: FloatingActionButton(
    onPressed: _incrementCounter,
    tooltip: 'Increment',
    child: Icon(Icons.add),
    ),
    );
    }


    Widget denemeGorunmez(){
    return Scaffold(
    appBar: AppBar(
    title: Text(widget.title),
    ),
    body: Center(
    child: Column(
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
    Text(
    'Tamam',
    ),
    Text(
    '$_counter',
    style: Theme.of(context).textTheme.display1,
    ),
    ],
    ),
    ),
    );
    }
    }
  • 04-02-2020, 02:44:33
    #5
    5 ten geriye timer ile mi yoksa butona tıklayarak mı yapıyorsunuz bilmiyorum fakat genel mantık şu. Eğer butona tıklayıp countu sürekli -1 azaltıyorsanız burada değişkeninizi kontrol etmeniz gerekiyor. bir fonksiyon oluşturun Eğer FloatActionButtona Tıklıyorsanız onPressed : fonksiyonAdi
    void fonksiyonAdi(){
    degisken == 0 ? text = "Değiştirildi" : return
    }
    aynı şeyi timer periodic ile yapıyorsanızda uygulayabilirsiniz.
    Hem Text içindeki veriyi ve countı bir değişkene atmalısınız yoksa kontrol edemezsiniz.
    var count =5;
    var text = "deneme";

    Text(text); şeklinde olmalı
  • 04-02-2020, 02:53:18
    #6
    iBrain adlı üyeden alıntı: mesajı görüntüle
    5 ten geriye timer ile mi yoksa butona tıklayarak mı yapıyorsunuz bilmiyorum fakat genel mantık şu. Eğer butona tıklayıp countu sürekli -1 azaltıyorsanız burada değişkeninizi kontrol etmeniz gerekiyor. bir fonksiyon oluşturun Eğer FloatActionButtona Tıklıyorsanız onPressed : fonksiyonAdi
    void fonksiyonAdi(){
    degisken == 0 ? text = "Değiştirildi" : return
    }
    aynı şeyi timer periodic ile yapıyorsanızda uygulayabilirsiniz.
    Hem Text içindeki veriyi ve countı bir değişkene atmalısınız yoksa kontrol edemezsiniz.
    var count =5;
    var text = "deneme";

    Text(text); şeklinde olmalı
    Text( '$_counter', style: Theme.of(context).textTheme.display1, ), ], ),),
    Textim şu şekilde counter değişkenini yazdırıyor ne yaptıysam count 0 olduğunda bunun değişkenini değiştiremedim. Floatting buttonu null yaparak yok etmeyi başardım ama bunu yapamadım.