Работал ли с приложениями с tab bar

«Работал ли с приложениями с tab bar» — вопрос из категории UI и Views, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, работал с приложениями с TabBar, используя как стандартные компоненты Android (TabLayout + ViewPager2), так и кастомные решения.

Пример с TabLayout и ViewPager2:

val viewPager = findViewById<ViewPager2>(R.id.viewPager)
val tabLayout = findViewById<TabLayout>(R.id.tabLayout)

viewPager.adapter = MyPagerAdapter(this)  
TabLayoutMediator(tabLayout, viewPager) { tab, position ->  
    tab.text = "Tab ${position + 1}"  
}.attach()

Нюансы:

  • Производительность: Для сложных фрагментов используем FragmentStateAdapter.
  • Кастомизация: Можно менять иконки, добавлять бейджи, анимации.
  • Jetpack Compose: В современных проектах использую TabRow + Pager из Accompanist.

Если нужно сложное поведение (например, скрытие/показ табов), делал кастомные решения на BottomNavigationView или ConstraintLayout.