Loading...

GestureDetector

GestureDetector

         Flutter биз башка виджет үчүн баскычтарды башкаруу мүмкүнчүлүгүн кошо алабыз. Бул үчүн GestureDetector классы колдонулат .

         Бул класстын конструктору көптөгөн параметрлерди камтыйт, ошондуктан эң негизгилерин карап көрөлү. Параметр child баскычы мүмкүнчүлүгү кошулган виджетти коюуга мүмкүндүк берет. Эгерде GestureDetectorанын салынган виджети жок болсо, анда ал өзүнүн негизги контейнеринин бүт мейкиндигин ээлеп, анын бүт аймагын басууга болот.

         Бардык мүмкүн болгон баскычтарды иштетүү үчүн, GestureDetector конструктору ар кандай варианттарды берет. Жөнөкөй басууга аракетин onTap параметри аркылуу коюуга болот .

         Мисалы, Container виджетин басуу үчүн GestureDetector колдонолу:

import 'package:flutter/material.dart';

void main() {

  runApp(MaterialApp(

      home:  Scaffold(

        body: Counter(),

        appBar: AppBar(title: Text("METANIT.COM")),)

  ));

}

class Counter extends StatefulWidget{

 

  Counter({ Key key}) : super(key: key);

  @override

  _CounterState createState() => _CounterState();

}

class _CounterState extends State<Counter>{

  int _value = 0;

  _increaseValue(){

    setState(() =>_value++);

  }

  @override

  Widget build(BuildContext context) {

    return GestureDetector(

      onTap: _increaseValue,

      child: Container(

        color: Colors.lightBlueAccent,

        padding: const EdgeInsets.all(10),

        margin: const EdgeInsets.all(10),

        child: Text("Value: $_value", style: TextStyle(fontSize: 22)),

      ),  );  }  }

         Бул учурда класс параметри Counter виджетинин абалын өзгөртүүчү onTap ыкманы көрсөтөт . _increaseValue() айтканда, өзгөрмөнүн маанисин _value бирге көбөйтөт.

         GestureDetector үчүн салынган виджет Container элементи болуп саналат, ал өз кезегинде Теxt виджетин камтыйт. Жана Text _value өзгөрмөнүн маанисин көрсөтөт. Башкача айтканда, Container виджети ээлеген аймакты басуу менен _increaseValue().

         Ошо сыяктуу эле, сиз дагы татаал иерархиялуу башка виджеттерге таптоолорду кошо аласыз же таптап иштетүүнү колдогон өз виджетиңизди түзө аласыз.