//-----------------------------------Code Detail
and Working---------------------------------------------------------
1 Step Tab Craete XML side
//============================java Code Start ================================
<com.google.android.material.tabs.TabLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tab_layout"/>
<!--ViewPage show click on tab-->
<androidx.viewpager2.widget.ViewPager2
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/viewpager_container"/>
==============================End=========================================
//-----------------------------------Code Detail
and Working---------------------------------------------------------
2 Step Tab Craete Adapter
//============================java Code Start
===============================
public class
CustomPageAdapter extends FragmentStateAdapter {
}
Log.d("dd",position+"");
return new HomeFragment();
}
else {
return new SettingFragment();
}
// Return size of tab
===================================================================================
public int getItemCount() {
return 2;
}
=========================================End=========================================
//--------------------------------------------Code Detail
and Working---------------------------------------------------------
3 Step Tab show
//============================java Code Start =========================================
binding.tabLayout.addTab(
binding.tabLayout.newTab()
.setText("Home"));
binding.tabLayout.addTab(
binding.tabLayout.newTab()
.setText("Profile"));
//////
CustomPageAdapter
adapter =
new CustomPageAdapter(
getSupportFragmentManager(),
getLifecycle()
);
binding.viewpagerContainer.setAdapter(adapter);
=========================================End=========================================4
Step Tab Click Function create
//============================java Code Start =========================================
binding.viewpagerContainer.
registerOnPageChangeCallback(new
ViewPager2.OnPageChangeCallback() {
@Override
public void
onPageSelected(int position) {
super.onPageSelected(position);
//set button
Toast.makeText(Tab_create.this,
"dsg", Toast.LENGTH_SHORT).show();
binding.tabLayout.selectTab(
binding.tabLayout.getTabAt(position)
);
}
});
////////////////////////////////
5 Step Pager Click Function create
//============================java Code Start =========================================
binding.tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
binding.viewpagerContainer.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
=========================================End=========================================
Comment code
package com.example.assignment2.adapters;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.lifecycle.Lifecycle;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import com.example.assignment2.fagments.HomeFragment;
import com.example.assignment2.fagments.SettingFragment;
public class CustomPageAdapter extends FragmentStateAdapter {
public CustomPageAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle) {
super(fragmentManager, lifecycle);
}
@NonNull
@Override
public Fragment createFragment(int position) {
if(position==0){
return new HomeFragment();
}
else {
return new SettingFragment();
}
}
@Override
public int getItemCount() {
return 2;
}
}