How to set icon for TabLayout Tab in Android Fragment (Javascript)

21 views Asked by At

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

    }

}
0

There are 0 answers