Flutter ramka uchun qo'llanma 1-bob. Flutterga kirish Flutter nima. O'rnatish
Download 1.13 Mb.
|
Flutter ramka uchun qo\'llanma 1-bob. Flutterga kirish Flutter ni
StatefulWidget va State
StatefulWidget klassi statistik vidjetlarni yaratish uchun moʻljallangan. Shu bilan birga, StatefulWidget sinfi ob'ektlari o'zgarmas bo'lishiga qaramay, ularning holati o'zgaruvchan. Davlat nima? Holat - bu vidjet yaratilganda sinxron tarzda o‘qilishi mumkin bo‘lgan va vidjetning hayot aylanishi davomida o‘zgarishi mumkin bo‘lgan ba’zi ma’lumotlar. Davlat alohida Davlat ob'ektlari sifatida yoki Davlat ob'ekti obuna bo'lgan boshqa ob'ektlarda saqlanishi mumkin. Holat ob'ektlari framework tomonidan chaqiriladigan va ularni StatefulWidget bilan bog'laydigan createState usuli yordamida yaratiladi. Masalan, eng oddiy StatefulWidgetni aniqlaymiz:
Shunday qilib, bu erda StatefulWidget-dan meros bo'lgan Counter klassi aniqlandi. Uning konstruktori bitta parametr - kalitni o'z ichiga oladi, garchi kerak bo'lsa, biz ehtiyojlarimizdan kelib chiqqan holda boshqa parametrlarni belgilashimiz mumkin. Shuningdek, vidjet sinfi bu vidjet holatini qaytarishi kerak bo‘lgan createState () usulini bekor qilishi kerak.
Bunday holda, u _CounterState sinfining ob'ekti hisoblanadi. (Oldinda chiziqcha (_) qoʻyilgan sinflar yoki sinf aʼzolari boshqa kutubxonalar sinflari uchun shaxsiydir.) Shtat sinfining o'zi vidjetlar sinfi tomonidan terilgan Davlat sinfidan meros qilib olingan.
Sinfning o'zi shartli ravishda davlat sinfi saqlaydigan ma'lumotlarni ifodalovchi o'zgaruvchan qiymatni belgilaydi.
Shuningdek, biz vidjetni qaytaradigan build () usulini bekor qilishimiz kerak:
Bu erda biz shunchaki o'zgaruvchi qiymatining qiymatini chiqaradigan Matn vidjetini qaytaramiz. Ammo tabiiy ravishda qaytarilgan vidjet ierarxiyasi murakkabroq bo'lishi mumkin. Keyin Counter vidjeti Scaffold elementidagi dasturga kiritilgan:
Natijada, dasturni ishga tushirishda biz o'zgaruvchining qiymatini ko'rsatadigan matnni ko'ramiz Ammo StatefulWidget ortidagi asosiy g'oya shundan iboratki, biz uning holatini o'zgartirishimiz mumkin. Shuning uchun, tugmani bosish orqali qiymat o'zgaruvchisiga o'zgartirish kiritamiz:
Endi soddalik uchun qiymat o'zgaruvchisining qiymati tugmachaga matn sifatida ko'rsatiladi. Tugmani bosganingizda, qiymatni bittaga oshiradigan funksiya chaqiriladi. Holat o'zgarganligini ko'rsatish uchun vidjet State.setState () usulini chaqiradi. Ushbu usul hech qanday parametrlarni olmaydigan va hech narsa qaytarmaydigan funktsiyaga o'tadi. Va bu erda biz qiymatni o'zgartirishimiz mumkin. Natijada, tugmani bosish orqali qiymat o'zgaruvchisining qiymati ortadi: Shtatga ma'lumotlarni uzatish Agar kerak bo'lsa, ma'lumotlar Davlat ob'ektiga tashqaridan uzatilishi mumkin. Bunday holda, uzatish StatefulWidget orqali amalga oshiriladi. Masalan, yuqoridagi misolni Shtat tashqaridan dastlabki ma'lumotlarni qabul qilishi uchun o'zgartiramiz:
Bunday holda, o'zgaruvchi qiymatining qiymatini oshiruvchi Davlatga yangi o'zgaruvchi qo'shildi. Ushbu o'zgaruvchilar uchun qiymatlarni tashqaridan olish uchun _CounterState (this.value, this.increment) konstruktori aniqlanadi. Davlat ob'ektini yaratishda Hisoblagich vidjeti mos keladigan ma'lumotlarni konstruktorga uzatadi:
Shu bilan birga, Counter vidjetining o'zi konstruktor yordamida ushbu qiymatlarni tashqi tomondan oladi:
Natijada, vidjetdan foydalanganda biz unga turli xil ma'lumotlarni uzatishimiz mumkin:
Vidjet olish Shtat ichidagi vidjet xususiyatidan foydalanib, Davlat ob'ekti bog'langan StatefulWidget-ga murojaat qilishingiz mumkin:
Bunday holda, o'sish o'zgaruvchisi faqat Counter sinfida aniqlanadi va unga widget.increment ifodasi orqali kirish mumkin, bu erda vidjet Hisoblagich vidjeti hisoblanadi. Xuddi shunday, agar mavjud bo'lsa, vidjetdan boshqa maydonlar va usullarga murojaat qilishingiz mumkin. Holatni o'zgartirish mantiqini usulga olib tashlash Yuqoridagi misollarda holatni o'zgartirish uchun barcha mantiq onPressed funksiyasida jamlangan. Ammo bu harakatlarning barchasi alohida usulda ham amalga oshirilishi mumkin:
Agar barcha harakatlar amalga oshirilgan usul hech narsani qaytarmasa va hech qanday parametrlarni qabul qilmasa, ya'ni onPressed ta'rifiga to'g'ri kelsa (bu holatda bo'lgani kabi), unda siz to'g'ridan-to'g'ri onPressed parametriga funktsiyani belgilashingiz mumkin:
Download 1.13 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling