Day 04-สร้าง Interaction ให้กับไอคอนและเก็บค่าสถานะ
สอนตัวเองเขียน app ด้วย Flutter ใน25วัน (Flutter Self-Learning Challenge in 25 Days)
วันที่4 ของการสอนตัวเองเขียนapp ด้วยFlutter ซึ่งเป็น codelab ที่ต่อจากเมื่อวาน ซึ่งจะเป็นการสร้างไอคอน Favorite รูปหัวใจ ต่อท้าย List ของคำที่สุ่มขึ้นมา เริ่มจากการสร้างตัวแปร _saved เพื่อเก็บค่าที่ผู้ใช้เลือก และตัวแปร alreadySaved เพื่อตรวจสอบว่าผู้ใช้เลือกแล้วหรือยัง
จากนั้นก็จะทำการเพิ่มไอคอนด้วย Property ที่ชื่อ trailing: ต่อท้ายจาก title: ใน ListTitle widget จากนั้นก็จะทำให้ไอคอนสามารถ Interact ได้เมื่อผู้ใช้เลือก โดยจะเพิ่ม Property ที่ชื่อ onTap: โดยจะทำการตรวจสอบ ด้วยคำสั่งsetState()จากค่าตัวแปร alreadySaved แล้วเก็บค่าในตัวแปร_saved ทีนี้ไอคอนรูปหัวใจก็จะสามารถกดเลือกหรือยกเลิกได้
จากนั้นจะเป็นการแสดง List ของคำที่ผู้ใช้เลือกในหน้าจอถัดไป ซึ่งจะต้องทำการเพิ่มไอคอนสำหรับแสดงหน้าจอถัดไปบน appBar และใช้ Property ที่ชื่อ action: เพื่อตรวจสอบสถานะการกด ด้วย Property ที่ชื่อ onPressed ซึ่งเมื่อผู้ใช้กดก็จะไปเรียก function ที่เขียนเพิ่มขึ้นมาชื่อ _pushSaved()
ใน pushSaved() จะเป็นการเรียก widget ที่ชื่อ Navigator และ MaterialPageRoute ซึ่งจะไปทำการสร้างหน้าจอใหม่ที่มีการ Return ค่า ListTitle สำหรับหน้านั้นพร้อมกับ Scaffold ที่มีชื่อ appBar ใหม่ว่า Saved Suggestion และในส่วน body: ก็จะแสดงคำที่ผู้ใช้เลือก
ในตอนท้ายของ codelab ก็จะเป็นการสอนการเปลี่ยน Theme สี ของตัว app ที่เราเขียน ด้วย Property ที่ชื่อ theme:
เป็นPart2ที่ไม่ยาวมากนัก แต่ตอนทำNavigator เพื่อเปลี่ยนไปหน้าจอถัดไปตอนเขียนโค๊ดอาจจะงงกับวงเล็บหน่อยเพราะซ้อนกันเยอะต้องมองภาพเป็นกลุ่มให้ดีๆ
แต่จากการที่รู้สึกว่าน่าจะมีตัวช่วยในการจัดการเรื่องของกลุ่มโค๊ดเหล่านี้ก็เลยไปค้นหามาพบว่าใน VSCode มี extension ที่ช่วยให้การเขียนโค๊ดสะดวกขึ้นอยู่หลายตัวที่อยากแนะนำคือให้ติดตั้ง extension ที่ชื่อ Bracket Pair Colorizer2 , Bracket Select , indent-rainbow ก็จะช่วยทำให้ดูโค๊ดได้เป็นกลุ่มก้อนเข้าใจง่ายมาขึ้นดังภาพ
Support me at:
Ko-fi :https://ko-fi.com/bitesizestory
Buy me a coffee :https://www.buymeacoffee.com/bitesizestory
ติดตามบทความ สอนตัวเองเขียน app ด้วย Flutter ใน25วัน (Flutter Self-Learning Challenge in 25 Days) ทั้งหมดได้จากลิงค์ด้านล่าง
Day25-สร้าง app สำหรับอัพเดทยอดผู้ติดเชื้อโควิด19 ทั่วโลก
Day24-สร้าง app สำหรับอ่านข่าวด้วย NewsAPI ตอนที่3
Day23-สร้าง app สำหรับอ่านข่าวด้วย NewsAPI ตอนที่2
Day22-สร้าง app สำหรับอ่านข่าวด้วย NewsAPI ตอนที่1
Day21-ใช้ WebView ในการแสดงผลไฟล์ html5 ด้วย webview_flutter_plus package
Day20-ใช้ GridView และการเปลี่ยน interface แนวตั้งและแนวนอน
Day19-ทำ Flip Card ด้วย flip_card package
Day18-สร้าง ListView จากไฟล์ json
Day17-ทำ Splash Screen ง่ายๆด้วย splashscreen package
Day16-สร้าง Bottom Navigation Bar
Day15-สร้าง Animated Container
Day14-สร้าง Page Navigation Animation ง่ายๆ
Day13-สร้างหน้าจอ slideshow ด้วย carousel_slider package
Day12-สร้างBar Graph ด้วย charts_flutter package
Day11-การทำ Animated Bar Graph จากค่าสุ่มอย่างง่ายๆ
Day10-การทำ Bar Graph จากค่าสุ่มอย่างง่ายๆ
Day09-สร้าง Animationให้ Bar Graph
Day08-ทำ OnBoarding Screen ด้วย Package introduction_screen
Day07-สร้างInteractionง่ายๆบน Page Layout
Day04-สร้าง Interaction ให้กับไอคอนและเก็บค่าสถานะ