Sub CPMK :
- Mahasiswa dapat mengetahui
- Mahasiswa dapat mengedit
- Mahasiswa dapat membuat
Alat dan Bahan :
- Laptop atau PC dengan Spesifikasi Prosesor minimal Corei5 dan RAM 8 GB
- Android Studio
- Android Device
Langkah Kerja
- Buat Project baru di android studio, dengan kriteria sebagai berikut :
Nama Project | MyTabLayout |
Target & Minimal SDK | Phone and Tablet, API Level 21 |
Tipe Activity | Empty Activity |
Language | Kotlin |
- Pertama, tambahkan terlebih dahulu library ViewPager2 dan material design untuk membuat TabLayout. Silakan masuk ke build.gradle(Module: app) dan tambahkan kode berikut:
implementation 'com.google.android.material:material:1.4.0' implementation "androidx.viewpager2:viewpager2:1.0.0"
Selanjutnya klik sync project di pojok kanan atas supaya library tersebut terunduh ke project kita.
- Setelah itu, tambahkan TabLayout dan ViewPager2 ke activity_main.xml dengan kode berikut:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <com.google.android.material.tabs.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" app:tabTextColor="@android:color/white"/> <androidx.viewpager2.widget.ViewPager2 android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
- Kemudian buat fragment baru terlebih dahulu yang akan dipakai untuk isi dari TabLayout. Caranya yaitu klik kanan pada nama package → new → Fragment → Fragment (Blank).
Beri nama ChatFragment. Kemudian klik Finish.
- Selanjutnya ubah layout pada fragment_chat.xml menjadi seperti berikut:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ChatFragment"> <TextView android:id="@+id/section_label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:text="@string/content_tab_chat" /> </FrameLayout>
Jangan lupa untuk menambahkan resource teks pada res → value → strings.xml. Resource ini akan dipakai sampai akhir latihan.
<resources> <string name="app_name">MyTabLayout</string> <string name="content_tab_chat">Content Chat</string> <string name="content_tab_status">Content Status</string> <string name="tab_text_1">Chat</string> <string name="tab_text_2">Status</string> <!-- TODO: Remove or change this placeholder text --> <string name="hello_blank_fragment">Hello blank fragment</string> </resources>
- Buat fragment sekali lagi dengan cara yang sama, yaitu klik kanan pada nama package → new → Fragment → Fragment (Blank). Beri nama StatusFragment dan klik Finish. Kemudian ubah layout pada fragment_status.xml menjadi seperti berikut:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".StatusFragment"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="16dp" android:text="@string/content_tab_status" /> </FrameLayout>
- Selanjutnya kita akan membuat kelas baru untuk mengatur ViewPager2 dan TabLayout. Caranya, klik kanan pada nama package → new → Kotlin Class / Java Class. Beri nama SectionsPagerAdapter. Pertama buat terlebih dahulu constructor dengan menambahkan kode berikut:
class SectionsPagerAdapter(activity: AppCompatActivity) : FragmentStateAdapter(activity) { }
- Jika muncul baris merah, jangan khawatir. Arahkan kursor pada SectionsPagerAdapter, tekan Alt+Enter untuk mendapatkan suggestion, dan pilih implement members (Kotlin) atau impement methods (Java).
Kemudian pilih kedua method dan klik OK
- Selanjutnya ubah kode di dalamnya, sehingga kelas SectionsPagerAdapter secara keseluruhan menjadi seperti berikut:
class SectionsPagerAdapter(activity: AppCompatActivity) : FragmentStateAdapter(activity) { override fun createFragment(position: Int): Fragment { var fragment: Fragment? = null when (position) { 0 -> fragment = ChatFragment() 1 -> fragment = StatusFragment() } return fragment as Fragment } override fun getItemCount(): Int { return 2 } }
- Kemudian panggil kelas yang baru saja dibuat. Mulailah dengan setup ViewPager2 dan TabLayout pada kelas MainActivity menggunakan kode berikut:
class MainActivity : AppCompatActivity() { companion object { @StringRes private val TAB_TITLES = intArrayOf( R.string.tab_text_1, R.string.tab_text_2 ) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val sectionsPagerAdapter = SectionsPagerAdapter(this) val viewPager: ViewPager2 = findViewById(R.id.view_pager) viewPager.adapter = sectionsPagerAdapter val tabs: TabLayout = findViewById(R.id.tabs) TabLayoutMediator(tabs, viewPager) { tab, position -> tab.text = resources.getString(TAB_TITLES[position]) }.attach() supportActionBar?.elevation = 0f } }
- Jalankan aplikasi, Tampilannya saat ini menjadi seperti berikut.