More
การสร้างเมนูแบบเลื่อนลงใน Flutter ด้วยข้อมูลเบื้องหลังจาก Back4app
10 นาที
บทนำ เคยมีปัญหาในการสร้างเมนูแบบเลื่อนลงที่มีความไดนามิกใน flutter หรือไม่? คุณไม่ได้อยู่คนเดียว! ในคู่มือนี้ เราจะพาคุณไปสร้างเมนูแบบเลื่อนลงที่ดึงตัวเลือกจาก back4app backend มันง่ายกว่าที่คุณคิด และเมื่อจบ คุณจะมีเมนูแบบเลื่อนที่ยืดหยุ่นและขับเคลื่อนด้วยข้อมูลในแอป flutter ของคุณ ลองนึกภาพว่าคุณกำลังสร้างแอปสำหรับบริการจัดส่งพิซซ่า ตัวเลือกท็อปปิ้งที่มีอาจเปลี่ยนแปลงบ่อย ดังนั้นการกำหนดค่าคงที่จึงไม่เหมาะสม นี่คือที่ที่เมนูแบบเลื่อนที่ขับเคลื่อนด้วย backend จะมีประโยชน์! ข้อกำหนดเบื้องต้น ก่อนที่เราจะเริ่มต้น ให้แน่ใจว่าคุณมีบัญชี back4app (ไม่ต้องกังวล มันฟรีในการลงทะเบียน) และติดตั้ง flutter บนเครื่องของคุณ หากคุณเป็นมือใหม่ใน flutter ให้ตรวจสอบคู่มือการติดตั้งของพวกเขา โอ้ และความเข้าใจพื้นฐานเกี่ยวกับ dart และ flutter widgets จะช่วยได้ แต่เราจะพาคุณผ่านส่วนที่ยุ่งยาก! ขั้นตอนที่ 1 – การตั้งค่า back4app backend ของคุณ มาตั้งค่า back4app backend ของเรากันเถอะ ไม่ต้องกังวล มันไม่ได้น่ากลัวอย่างที่คิด! อันดับแรก เข้าสู่ระบบบัญชี back4app ของคุณ ไม่มีบัญชี? ไม่มีปัญหา! ไปที่ back4app com https //www back4app com และลงทะเบียน – มันฟรีและรวดเร็ว สร้างโปรเจกต์ backend ใหม่ คุณสามารถตั้งชื่อมันว่า 'awesomedropdowndata' หรือจะใช้ชื่อ 'dropdownexample' หากคุณรู้สึกไม่สร้างสรรค์ในวันนี้ ตอนนี้ มาสร้างคลาส parse กันเถอะ คิดว่ามันเป็นตารางพิเศษสำหรับตัวเลือกเมนูแบบเลื่อนของเรา เราจะเรียกมันว่า 'options' (จินตนาการดีใช่ไหม?) เพิ่มคอลัมน์ชื่อ optionvalue (string) เพื่อเก็บตัวเลือกเมนูแบบเลื่อนของเรา ถึงเวลาที่จะเพิ่มข้อมูลตัวอย่าง! มามอบข้อมูลให้กับคลาส 'options' ของเราด้วยท็อปปิ้งพิซซ่าที่อร่อย เปปเปอร์โรนี เห็ด ชีสพิเศษ สุดท้ายแต่ไม่ท้ายสุด จับ id แอปพลิเคชันและ client key จากการตั้งค่าโปรเจกต์ของคุณ เราจะต้องใช้สิ่งเหล่านี้เพื่อเชื่อมต่อแอป flutter ของเรากับ back4app ขั้นตอนที่ 2 – การตั้งค่าโปรเจกต์ flutter มาสร้างโปรเจกต์ flutter ใหม่กันเถอะ เปิดเทอร์มินัลของคุณ หาโซนที่สะดวกสำหรับโปรเจกต์ของคุณ และรัน flutter create dropdown example ตอนนี้ มาลงทะเบียน dependencies กันเถอะ เปิด pubspec yaml และเพิ่มบรรทัดเหล่านี้ dependencies flutter sdk flutter parse server sdk flutter ^3 1 0 # use the latest version available อย่าลืมรัน flutter pub get เพื่อดึงแพ็กเกจเหล่านี้! ตอนนี้ มาบอกแอป flutter ของเราว่าจะพูดคุยกับ back4app อย่างไร เปิด lib/main dart และเพิ่มโค้ดนี้ อย่ากังวลถ้ามันดูน่ากลัวไปหน่อย – เราจะอธิบายมัน! import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your back4app app id'; const keyclientkey = 'your back4app client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize(keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true); runapp(myapp()); } class myapp extends statelesswidget { @override widget build(buildcontext context) { return materialapp( home dropdownmenuscreen(), ); } } อย่าลืมเปลี่ยน 'your back4app app id' และ 'your back4app client key' ด้วยข้อมูลรับรอง back4app ที่แท้จริงของคุณ นี่เหมือนกับการจับมือที่ลับระหว่างแอปของคุณกับ back4app! ขั้นตอนที่ 3 – สร้างเมนูแบบดรอปดาวน์ ตอนนี้มาถึงส่วนที่สนุก – มาสร้างเมนูแบบดรอปดาวน์ของเรากันเถอะ! นี่คือโค้ดสำหรับ dropdownmenuscreen วิดเจ็ตของเรา มันอาจดูเหมือนเยอะ แต่เราจะอธิบายทีละส่วน สัญญา! class dropdownmenuscreen extends statefulwidget { @override dropdownmenuscreenstate createstate() => dropdownmenuscreenstate(); } class dropdownmenuscreenstate extends state\<dropdownmenuscreen> { string? selectedoption; list\<string> options = \[]; bool loading = true; @override void initstate() { super initstate(); fetchoptions(); } future\<void> fetchoptions() async { final query = querybuilder\<parseobject>(parseobject('options')); final response = await query query(); if (response success && response results != null) { setstate(() { options = response results! map((e) => e get\<string>('optionvalue')!) tolist(); loading = false; }); } else { setstate(() { loading = false; }); } } @override widget build(buildcontext context) { return scaffold( appbar appbar(title text('pizza topping selector')), body loading ? center(child circularprogressindicator()) center( child dropdownbutton\<string>( value selectedoption, hint text('choose your topping'), items options map((string option) { return dropdownmenuitem\<string>( value option, child text(option), ); }) tolist(), onchanged (string? newvalue) { setstate(() { selectedoption = newvalue!; }); }, ), ), ); } } อู้ว นั่นคือโค้ดที่เยอะมาก! แต่ไม่ต้องตกใจ – มาทำให้มันเข้าใจง่ายขึ้นทีละส่วน วิดเจ็ตนี้ทำสิ่งสำคัญบางอย่างให้กับเรา มันกำลังติดต่อกับแบ็กเอนด์ back4app ของเราและดึงรายการตัวเลือกของเราออกมา คิดซะว่าเหมือนกับพนักงานเสิร์ฟที่นำเมนูมาให้คุณที่ร้านอาหาร ในขณะที่มันกำลังดึงข้อมูล มันจะแสดงสัญลักษณ์โหลด เพราะไม่มีใครชอบมองหน้าจอว่างๆ ใช่ไหม? เมื่อมันมีตัวเลือกแล้ว มันจะแสดงในเมนูแบบดรอปดาวน์ที่สวยงาม เมื่อคุณเลือกตัวเลือก มันจะจดจำการเลือกของคุณ เจ๋งใช่ไหม? และส่วนที่ดีที่สุดคือ ทุกครั้งที่คุณอัปเดตตัวเลือกใน back4app แอปของคุณจะโชว์รายการใหม่โดยอัตโนมัติเมื่อโหลดครั้งถัดไป มันช่างมหัศจรรย์! ขั้นตอนที่ 4 – รันแอป ถึงเวลาของความจริงแล้ว! รันแอปของคุณโดยใช้ flutter run ถ้าทุกอย่างเป็นไปด้วยดี คุณควรเห็นเมนูแบบดรอปดาวน์ที่มีท็อปปิ้งพิซซ่าที่เราจัดเก็บไว้ใน back4app ไปข้างหน้า เลือกท็อปปิ้ง ดูสิว่ามันอัปเดตทันทีไหม? นั่นคือพลังของการจัดการสถานะใน flutter! แนวทางปฏิบัติที่ดีที่สุดสำหรับเมนูแบบดรอปดาวน์ที่มีการเชื่อมต่อกับแบ็คเอนด์ จัดการสถานะการโหลด ดังที่คุณเห็นในตัวอย่างของเรา เราใช้ตัวบ่งชี้การโหลดในขณะที่ดึงข้อมูล มันเหมือนกับการเปิดเพลงในขณะที่แขกของคุณรออาหารเย็น – มันทำให้ประสบการณ์ดีขึ้น! การจัดการข้อผิดพลาด ในแอปจริง คุณจะต้องเพิ่มการจัดการข้อผิดพลาด ถ้าอินเทอร์เน็ตล่มล่ะ? หรือ back4app กำลังงีบหลับ? วางแผนสำหรับสิ่งที่ไม่คาดคิดเสมอ! ใช้การแบ่งหน้า ถ้ารายการดรอปดาวน์ของคุณยาวกว่ารายการส่วนผสมในพิซซ่าสไตล์ชิคาโก ให้พิจารณาการใช้การแบ่งหน้า ผู้ใช้ของคุณ (และอุปกรณ์ของพวกเขา) จะขอบคุณคุณ บทสรุป คุณเพิ่งสร้างเมนูแบบดรอปดาวน์ที่ชาญฉลาดและมีพลังจากแบ็คเอนด์ใน flutter! 🎉 ทำไมไม่ลองขยายตัวอย่างนี้ดู? อาจเพิ่มปุ่มที่เพิ่มท็อปปิ้งที่เลือกไปยังคำสั่งพิซซ่า หรือพยายามแสดงตัวเลือกในส่วนประกอบ ui ที่แตกต่างกัน ท้องฟ้าคือขีดจำกัด! และจำไว้ว่า ถ้าคุณติดขัดหรือต้องการคำถาม ชุมชน flutter และ back4app จะช่วยเหลืออย่างมาก อย่าลังเลที่จะขอความช่วยเหลือ! ตอนนี้ไปข้างหน้าและสร้าง ui ที่น่าทึ่งและมีพลศาสตร์! 💪 สำหรับข้อมูลเพิ่มเติม โปรดตรวจสอบ เอกสาร flutter https //flutter dev/docs และ เอกสาร back4app https //www back4app com/docs ขอให้สนุกกับการเขียนโค้ด!