Flutter: BottomNavigationBar[EP: 3]with floating button look more friendly.
จากตัวอย่างที่แล้วใน Ep2 ที่เราได้ BottomBar with Floating button แล้ว แต่ถ้าเอามาวาง onTop กันตรงกลาง แลดูไม่สวยเลย เพราะเป็นการวางซ้อนกับปุ่มด้านหลัง ทำให้กดปุ่มด้านหลังยากกว่าเดิม
ฉะนั้นเราลองมา refactor code และจัดปุ่มให้ดูมีรสนิยมมากขึ้นดีกว่า
- อันดับแรก 3 ปุ่มมันดูไม่ balance ลองเปลี่ยนให้เป็นสี่ปุ่มดีกว่า
{
'icon': Icon(Icons.settings),
'label': 'Settings',
'body': TabSettings(),
},
2. แต่ในการเพิ่ม notch ระหว่าง floating button และ navigation bar ไม่สามารถทำได้ เพราะยังไม่มี property รองรับ จึงต้องทำการเปลี่ยนจาก BottomNavigationBar() ไปใช้ BottomAppBar() แทน
ซึ่ง items ด้านในเราจะต้อง custom ขึ้นมาเอง ไม่มีมาให้เหมือนกับ BottomNavigationBar()
ซึ่ง button แต่ละตัวได้มีการ custom ขึ้นมาเองเพื่อให้เหมือนกับการใช้ BottomNavigationBar()
มาถึงขั้นตอนนี้เราก้อจะได้ BottomNavigationBar ในแบบที่เราได้ customize ขึ้นมาเองแล้ว ซึ่ง floating button ตรงกลางก็ onTop แบบก่อนหน้านนี้แล้ว (มี notchMargin ให้ดู friendly ขึ้น)
ถัดไปเราจะเรียกใช้ body ให้ตรงกับการเลือกที่ button แต่ละตัว
ถึงขั้นตอนนี้จะได้ body ที่เปลี่ยนแปลงค่าไปตามปุ่มบน bottom bar แล้ว
อันนี้คือ sample ของ tab ที่ button เรียกมาโชว์ใน body
ถัดไปจะลองมาสร้าง Animation เล็กๆจาก Floating button ตรงกลาง โดยใช้ AnimatedContainer()
สุดท้ายนี่คือ small animation together with button navigation bar.