Hey guys can you help me with this? im newbie im not very good, so here's the thing i've been trying to create tab layout BUT the fragments that i call isnt show up. can you guys help me im really stuck over here. so i use FragmentStateAdapter inside pageradapter
here is my Tab.java
package com.app.appforum.fragments;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager2.widget.ViewPager2;
import com.app.appforum.R;
import com.google.android.material.tabs.TabLayout;
import java.util.Objects;
public class Tab extends AppCompatActivity {
private TabLayout tabLayout;
private ViewPager2 viewPager2;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab);
tabLayout = findViewById(R.id.tab_layout);
viewPager2 = findViewById(R.id.view_pager);
MyViewPagerAdapter myViewPagerAdapter = new MyViewPagerAdapter(this);
viewPager2.setAdapter(myViewPagerAdapter);
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager2.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
Objects.requireNonNull(tabLayout.getTabAt(position)).select();
}
});
}
}
here is my MyViewPagerAdapter
package com.app.appforum.fragments;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.viewpager2.adapter.FragmentStateAdapter;
public class MyViewPagerAdapter extends FragmentStateAdapter {
public MyViewPagerAdapter(@NonNull FragmentActivity fragmentActivity) {
super(fragmentActivity);
}
@NonNull
@Override
public Fragment createFragment(int position) {
switch (position){
case 1:
return new VideoFragment();
case 2:
return new MateriFragment();
default:
return new ForumFragment();
}
}
@Override
public int getItemCount() {
return 3;
}
}
and here is my xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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=".fragments.Tab"
>
<!-- TODO: Update blank fragment layout -->
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.tabs.TabItem
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/forum" />
<com.google.android.material.tabs.TabItem
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/video" />
<com.google.android.material.tabs.TabItem
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/materi" />
</com.google.android.material.tabs.TabLayout>
<androidx.viewpager2.widget.ViewPager2
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/view_pager"
android:layout_below="@+id/tab_layout"/>
</RelativeLayout>
please and thank you.