I have an activity with Two Fragments, I am using Tablayout to switch to Fragment, How can i add an icon to the Tablayout Title in my activity, i can set the title but cant find the way to set an icon for that.
Below is screenshot, and highlghted where i want the icon:-
https://i.imgur.com/FAFfRwV.png
Below is my Activity:-
public class FragmentActivity extends AppCompatActivity {
NoRepeatLogic noRepeatLogic;
FragmentAdapter fragmentAdapter;
private TabLayout tabLayout;
private ViewPager2 viewPager;
private int[] tabIcons = {R.drawable.wicketkeeper, R.drawable.wicketkeeper};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);
tabLayout = findViewById(R.id.tabLayout);
viewPager = findViewById(R.id.viewPager);
setSupportActionBar(findViewById(R.id.toolbar));
fragmentAdapter = new FragmentAdapter(getSupportFragmentManager(), getLifecycle());
fragmentAdapter.addFragment(new NoRepeatLogic(), "No Repeat Logic", R.drawable.logic);
fragmentAdapter.addFragment(new Barish_ka_Logic(), "Barish ka Logic", R.drawable.logic);
viewPager.setAdapter(fragmentAdapter);
new TabLayoutMediator(tabLayout, viewPager, (tab, position) -> {
tab.setText(fragmentAdapter.getFragmentTitle(position));
}).attach();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// Disable swipe gestures for fragment transactions
return false;
}
}
Below is my fragment adapter:-
public class FragmentAdapter extends FragmentStateAdapter {
private final List<Fragment> fragmentList = new ArrayList<>();
private final List<String> fragmentTitles = new ArrayList<>();
private final List<Integer> fragmentDrawables = new ArrayList<>();
public FragmentAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle) {
super(fragmentManager, lifecycle);
}
public void addFragment(Fragment fragment, String title, int drawableResource) {
fragmentList.add(fragment);
fragmentTitles.add(title);
fragmentDrawables.add(drawableResource);
}
@NonNull
@Override
public Fragment createFragment(int position) {
return fragmentList.get(position);
}
@Override
public int getItemCount() {
return fragmentList.size();
}
public String getFragmentTitle(int position) {
return fragmentTitles.get(position);
}
public int getFragmentDrawable(int position) {
return fragmentDrawables.get(position);
}
}
Below is my Fragment:-
public class NoRepeatLogic extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.fragment_no_repeat_logic, container, false);
tabLayout = view.findViewById(R.id.tabLayout);
///My other functions
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
///My other functions
}
}