ว่าด้วยเรื่อง Custom View Group [Android Design]

Kittiphon Saikaewtes
te<h @TDG
Published in
2 min readFeb 16, 2017

เนื่องจากการพัฒนา Android Application นั้นสิ่งที่ Android Developer ไม่ค่อยถนัดกันซักเท่าไหร่ (รวมถึงผู้เขียนด้วย ฮ่าๆ) นั่นคือการ Design นั่นเองงงง…. บทความนี้ก็เลยอยากจะมาแชร์ประสบการณ์ ที่เขียนแอพ มาซะหน่อย ก็คือการสร้าง Custom View Group นั่นเอง

บางครั้งในแอพเรานั้นอาจมีการใช้ View ซ้ำกันประมาณนี้

MainActivity

ง่า!!! โคตรจะเปลือง View เลย

จะดีกว่าไหมถ้าเราทำการแยก View ที่ใช้ซ้ำๆกันมากรุ๊ปรวมเป็น View ใหม่อีกตัวนึงแล้วใช้ View ตัวที่สร้างใหม่แทน

เริ่มเลยดีกว่าเริ่มจากสร้าง View ที่เราจะใช้ซ้ำขึ้นมาชุดนึง แบบนี้

จากนั้นทำการสร้าง class ของ View ใหม่ของเราแล้วทำการ extend FrameLayout

ทำไมต้องใช้ FrameLayout เพราะว่ามันทำไรไม่ได้มากอยู่แล้วเป็น Layout โง่ๆตัวนึงมีหน้าที่เป็นพื้นที่รองรับ View อื่นๆแค่นั้นเอง

เมื่อเรา extend FrameLayout มาแล้วให้จะขึ้นตัวสีแดงๆ ไมต้องตกใจครับ ทำการ กด cmd+N เพื่อสร้าง Constructor ของ class ให้กดเลือก Secondary Constructor ครับ

จากนั้นจะได้ Constructor ให้เลือกแบบนี้

ให้เลือก 3 อันก็พอครับ

จากนั้นเรามาทำการ Inflate layout กันเลย โดยการใช้คำสั่ง init แล้วทำการ inflate layout ที่เราสร้างขึ้นมาก่อนหน้านี้เข้าไป

ต่อมาเรามาทำในส่วนของ layout กันบ้างโดยให้ทำการเรียก package name ตามด้วยชื่อ class ที่เราทำการ Inflate ไว้

MainActivity

ง่อวววว มาแล้ว 1 ชุด จะเห็นว่า code คลีนขึ้นเยอะเลย ชุดเดียวไม่พอใจลองใส่ไปอีกซัก 2 ชุด แล้วตั้งชื่อ id ให้ custom view แต่ละตัวด้วย

แสดงผลครบทั้ง 3 ชุดแล้วครับ แต่เอ??? แล้วเราจะ set ค่าให้ title กับ data ของแต่ละตัวยังไงกันนะ

ให้กลับมาที่ CustomViewGroupDetail ให้ทำการเพิ่ม คำสั่งสำหรับเรียกใช้งาน

คราวนี้มาดูการเรียกใช้งานบ้างครับ ให้เรียกId ที่เราตั้งให้กับ custom view แต่ละตัวแล้วเรียก function ที่เราสร้างไว้

เรียบร้อยครับ เท่านี้เราก็ทำการลดการสร้าง View ที่ซ้ำๆกันลงไปได้เยอะพอสมควรครับ

ขอบคุณที่อ่านจนจบครับผม Blog นี้เป็น Blog แรกที่ผมเขียนขึ้นหากท่านผู้อ่านมีอะไรแนะนำผมให้ไปปรับปรุง แนะนำมาได้เลยครับผม ^^

--

--