Create Tab Layout Like Whatsapp Tab
We need to Create Fragment Depend on Tab Create For Example if we need three tab then we require three fragment
public class MainActivity extends AppCompatActivity {
TabLayout tabLayout;
ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabLayout = findViewById(R.id.tablayout);
viewPager = findViewById(R.id.pager);
ViewpageAdapter viewpageAdapter = new ViewpageAdapter(getSupportFragmentManager());
viewpageAdapter.addFragment(new Tab1(), "Chat");
viewpageAdapter.addFragment(new Tab2(), "Status");
viewpageAdapter.addFragment(new Tab3(), "Call");
tabLayout.getTabAt(0).setIcon(R.drawable.thumblike);
viewPager.setAdapter(viewpageAdapter);
tabLayout.setupWithViewPager(viewPager);
}
}
public class ViewpageAdapter extends FragmentStatePagerAdapter {
ArrayList<Fragment>arrayList=new ArrayList<>();
ArrayList<String >tabname=new ArrayList<>();
public ViewpageAdapter(@NonNull FragmentManager fm) {
super(fm);
}
@NonNull
@Override
public Fragment getItem(int position) {
return arrayList.get(position);
}
@Override
public int getCount() {
return arrayList.size();
}
public void addFragment(Fragment fragment,String TABLAYOTUTEXT)
{
arrayList.add(fragment);
tabname.add(TABLAYOTUTEXT);
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return tabname.get(position);
}
}public class Tab1 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_tab1, container, false);
}
}public class Tab2 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_tab2, container, false);
}
}public class Tab3 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_tab3, container, false);
}
}<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Monday"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tuesday" />
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Wednesday" />
</com.google.android.material.tabs.TabLayout>
<androidx.viewpager.widget.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Comments
Post a Comment