Как установить значок для вкладки TabLayout во фрагменте Android (Javascript) ⇐ Android
Как установить значок для вкладки TabLayout во фрагменте Android (Javascript)
У меня есть действие с двумя фрагментами, я использую Tablayout для переключения на фрагмент. Как я могу добавить значок к заголовку Tablayout в своем действии, я могу установить заголовок, но не могу найти способ установить для него значок .
Ниже приведен снимок экрана и выделено место, где мне нужен значок: -
https://i.imgur.com/FAFfRwV.png
Ниже приведены мои действия:-
публичный класс FragmentActivity расширяет AppCompatActivity { NoRepeatLogic noRepeatLogic; FragmentAdapter фрагментАдаптер; частный TabLayout tabLayout; частный ViewPager2 viewPager; частный int [] tabIcons = {R.drawable.wicketkeeper, R.drawable.wicketkeeper}; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout.activity_fragment); tabLayout = findViewById(R.id.tabLayout); viewPager = findViewById(R.id.viewPager); setSupportActionBar(findViewById(R.id.toolbar)); фрагментАдаптер = новый FragmentAdapter(getSupportFragmentManager(), getLifecycle()); фрагментAdapter.addFragment(new NoRepeatLogic(), «Логика повторения отсутствует», R.drawable.logic); фрагментAdapter.addFragment(new Barish_ka_Logic(), "Barish ka Logic", R.drawable.logic); viewPager.setAdapter(fragmentAdapter); новый TabLayoutMediator(tabLayout, viewPager, (вкладка, позиция) -> { tab.setText(fragmentAdapter.getFragmentTitle(позиция)); }).прикреплять(); } @Override public boolean onTouchEvent (событие MotionEvent) { // Отключаем жесты смахивания для транзакций фрагментов вернуть ложь; } } Ниже приведен мой адаптер фрагмента:-
публичный класс FragmentAdapter расширяет FragmentStateAdapter { частный окончательный список List фрагментList = новый ArrayList(); частный окончательный List фрагментTitles = новый ArrayList(); частный окончательный List фрагментDrawables = новый ArrayList(); public FragmentAdapter(@NonNull FragmentManager фрагментманажер, @NonNull жизненный цикл жизненный цикл) { супер (fragmentManager, жизненный цикл); } public void addFragment (фрагмент фрагмента, заголовок строки, int drawableResource) { фрагментList.add(фрагмент); фрагментTitles.add(заголовок); фрагментDrawables.add(drawableResource); } @NonNull @Override общественный фрагмент createFragment (int позиция) { вернуть фрагментList.get(позиция); } @Override общественный ИНТ getItemCount () { вернуть фрагментСписок.размер(); } общественная строка getFragmentTitle (int позиция) { вернуть фрагментTitles.get(позиция); } public int getFragmentDrawable (int позиция) { вернуть фрагментDrawables.get(позиция); } } Ниже мой фрагмент:-
публичный класс NoRepeatLogic расширяет фрагмент { @Override public void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); } @Override public View onCreateView (инфлятор LayoutInflater, контейнер ViewGroup, Пакет saveInstanceState) { Просмотр представления = inflater.inflate(R.layout.fragment_no_repeat_logic,Container, false); tabLayout = view.findViewById(R.id.tabLayout); ///Другие мои функции } @Override public void onViewCreated (Просмотр, Bundle saveInstanceState) { super.onViewCreated(просмотр, saveInstanceState); ///Другие мои функции } }
У меня есть действие с двумя фрагментами, я использую Tablayout для переключения на фрагмент. Как я могу добавить значок к заголовку Tablayout в своем действии, я могу установить заголовок, но не могу найти способ установить для него значок .
Ниже приведен снимок экрана и выделено место, где мне нужен значок: -
https://i.imgur.com/FAFfRwV.png
Ниже приведены мои действия:-
публичный класс FragmentActivity расширяет AppCompatActivity { NoRepeatLogic noRepeatLogic; FragmentAdapter фрагментАдаптер; частный TabLayout tabLayout; частный ViewPager2 viewPager; частный int [] tabIcons = {R.drawable.wicketkeeper, R.drawable.wicketkeeper}; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout.activity_fragment); tabLayout = findViewById(R.id.tabLayout); viewPager = findViewById(R.id.viewPager); setSupportActionBar(findViewById(R.id.toolbar)); фрагментАдаптер = новый FragmentAdapter(getSupportFragmentManager(), getLifecycle()); фрагментAdapter.addFragment(new NoRepeatLogic(), «Логика повторения отсутствует», R.drawable.logic); фрагментAdapter.addFragment(new Barish_ka_Logic(), "Barish ka Logic", R.drawable.logic); viewPager.setAdapter(fragmentAdapter); новый TabLayoutMediator(tabLayout, viewPager, (вкладка, позиция) -> { tab.setText(fragmentAdapter.getFragmentTitle(позиция)); }).прикреплять(); } @Override public boolean onTouchEvent (событие MotionEvent) { // Отключаем жесты смахивания для транзакций фрагментов вернуть ложь; } } Ниже приведен мой адаптер фрагмента:-
публичный класс FragmentAdapter расширяет FragmentStateAdapter { частный окончательный список List фрагментList = новый ArrayList(); частный окончательный List фрагментTitles = новый ArrayList(); частный окончательный List фрагментDrawables = новый ArrayList(); public FragmentAdapter(@NonNull FragmentManager фрагментманажер, @NonNull жизненный цикл жизненный цикл) { супер (fragmentManager, жизненный цикл); } public void addFragment (фрагмент фрагмента, заголовок строки, int drawableResource) { фрагментList.add(фрагмент); фрагментTitles.add(заголовок); фрагментDrawables.add(drawableResource); } @NonNull @Override общественный фрагмент createFragment (int позиция) { вернуть фрагментList.get(позиция); } @Override общественный ИНТ getItemCount () { вернуть фрагментСписок.размер(); } общественная строка getFragmentTitle (int позиция) { вернуть фрагментTitles.get(позиция); } public int getFragmentDrawable (int позиция) { вернуть фрагментDrawables.get(позиция); } } Ниже мой фрагмент:-
публичный класс NoRepeatLogic расширяет фрагмент { @Override public void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); } @Override public View onCreateView (инфлятор LayoutInflater, контейнер ViewGroup, Пакет saveInstanceState) { Просмотр представления = inflater.inflate(R.layout.fragment_no_repeat_logic,Container, false); tabLayout = view.findViewById(R.id.tabLayout); ///Другие мои функции } @Override public void onViewCreated (Просмотр, Bundle saveInstanceState) { super.onViewCreated(просмотр, saveInstanceState); ///Другие мои функции } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение