{GitHub} ViewPager ตอนที่ 2 ใช้งานยังไง ?

มาต่อกันในบทความที่สองเนอะ สำหรับบทความนี้เจ้าของบทความ ก็จะพามาเข้าใจการเขียน Code ในการใช้งาน ViewPager ในแต่ละบรรทัดกัน ซึ่งต้องขอบอกว่ามันก็เหมือนกันอธิบาย Code นั้นแหละ เพียงแต่มาเข้าใจให้มากขึ้นเท่านั้นเอง

โดยที่จากครั้งที่แล้วเจ้าของบทความก็ได้เขียนเกรินไปในเรื่องของความเข้าใจในพื้้นฐานของ ViewPager และได้แนบ GitHub ให้ไปในตอนที่ 1 หากใคร ยังไม่ได้อ่านก็เข้าไปได้ในลิ้งนี้เลยนะ และก็ GitHub ใคร ที่ยังไม่ได้ดูก็สามารถไปได้จากลิ้งด้านล่างเลยนะ

เอาละ เริ่มกันเลย!!!! มารู้วิธีการเขียน Code ใน ViewPager กันง่ายๆ นะ

เริ่มแรก การใช้ ViewPager ไม่ยากอย่างที่คิด เพราะมันมากับ android.support library v4 นั้นเอง ซึ่งการใช้งาน เราต้องประกาศ ไว้ในส่วนของ xml กับ Java โดยที่ xml เราจะประกาศไว้แบบนี้

เห็นปะ ง่ายๆ ชื่อก็บอกอยู่แล้วว่ามาจาก android.support.v4 เสร็จแล้วก็ประกาศ Id ให้กับมันด้วยนะ แล้วก็ กำหนด ความกว้าง ความสูงได้ตามอัธยาศัย เลย ไม่จำเป็นต้องเป็น match_parent ก็ได้นะ

หลังจากนั้นเราก็ต้องมาประกาศ เชื่อม กับฝั่งของ Javaด้วย ซึ่ง Code ตัวนี้เจ้าของบทความจะขออธิบายไปทีล่ะส่วนนะจะได้เข้าใจมากขึ้น

โดยที่ฝั่ง Java เราจะประกาศ ViewPager ไว้ แล้วเราจะจัดการมันด้วยการ findviewById ให้กับมัน แค่นี้ก็เสร็จแล้ว แต่ !!!!!!!

อย่าลืมว่า ViewPager มีการใช้ Adapter เหมือน RecyclerView แสดงว่าเราต้องทำอะไร คงไม่ต้องบอกนะผู้ที่เข้ามาอ่านต้อง Make Sense อยู่แล้ว นั้นคือ การสร้าง Adapter ไงละ โดยที่เราจะสร้างเป็น inner Class นะ

และนี้คือหน้าต่างหลักๆ ของ Adapter ของ ViewPager โดยที่จากที่เจ้าของบทความบอกไปว่า มันทำงานกับ Fragment เพราะฉะนั้น เราจึงต้อง extends เป็น FragmentPagerAdapter เพื่อให้มันเชื่อมกับ Fragment นั้นเอง โดยที่ การ extends ของ Adapter เราจะแบ่งออกเป็น 2 แบบด้วยกัน

  1. FragmentPagerAdapter — หากผู้ที่เข้ามาอ่าน extends แบบนี้จะทำให้เวลาแสดง Fragment บน ViewPager Fragment ทุกอันจะถูกสร้างขึ้นพร้อมกันทั้งหมด เหมาะกับ ViewPager ที่จำนวนไม่มาก
  2. FragmentStatePagerAdapter — หากผู้ที่เข้ามาอ่าน extends เป็นแบบนี้ จะทำให้เวลาที่ ViewPager แสดง Fragment จะไม่สามารถทุกอันได้ แต่จะแสดงเฉพาะอันที่เราเลือกหรือ เลื่อนตำแหน่งไป ส่วนที่ไม่ได้แสดงจะถูกทำลายทิ้งนั้นเอง เหมาะกับ ViewPager จำนวนมากๆนะ

ป.ล. แต่ส่วนมากนิยมใช้ FragmentPagerAdapter กันซะส่วนใหญ่เพราะว่าเวลาทำ App จริงๆเราจะไม่แสดง ViewPager มากกว่า 3 หน้า จากที่เจ้าของบทความเคยเห็นมานะ ไม่รู้อนาคตจะเจออะไรแปลกๆไหม เดี๋ยวเอามาอัพเดทที่ Blog นี้นะ

สำหรับ Method ภายใน Adapter เราจะเห็นว่าคล้ายๆกับ Adapter ของ RecyclerView เลยเนอะ เดี๋ยวเจ้าของบทความขอแยก Method เป็นข้อๆนะ

  1. Method AdapterFragment- เป็น Constructor ที่ใช้ในกาารส่งข้อมูลให้กับ Adapter
  2. Method Fragment getItem — เป็น Method ที่คอย return ตำแหน่ง ของ Fragment ให้กับ Adapter แล้วให้ ViewPager เอาไปแสดงที่หน้าจอ ซึ่งเวลาเรา return เราจะทำ Fragment เป็นการ newInstance ก่อนนะ แล้วส่ง return กลับไป โดยที่ตัว Method มี parameter position ให้เรามาใช้ในการอ้างอิงตำแหน่งเรียบร้อย
  3. getCount — เป็น Method ที่ระบุว่า ViewPager มีกี่หน้านั้นเอง

คำเตือน — หากผู้ที่เข้ามาอ่านทำการระบุจำนวน ViewPager ไม่เท่ากับจำนวน Fragment หรือคิดที่จะใส่จำนวนไปก่อน แล้วลองกับ Fragment เพียงอันเดียวจะทำให้ App เด้งได้นะจ๊ะ เพราะฉะนั้นใส่จำนวน Fragment ให้เท่ากับจำนวน หน้าที่ระบุใน getCount ของ Adapter นะ

และหลังจากนี้เราก็ทำการ เชื่อม Adapter กับ ViewPager โดยใช้คำสั่ง ViewPager.setAdapter (); นั้นเองเสร็จแล้วลองรัน ดูจะพบกับความอลังการงานสร้าง 555+ (ตรงไหน)