Может ли пользовательский вид использоваться как TabItem?

Класс TabLayout в android предоставляет вам TabItem, который позволяет вам указать текст и значок. Можно ли использовать пользовательский вид в виде TabItem?

Моя вкладка будет выглядеть так:

Введите описание изображения здесь

Как вы можете видеть помимо значка и текстовой метки, у меня также есть символ уведомления (число внутри желтого круга). Как я могу делать такие табуляции?

В некоторых случаях вместо представления вкладки по умолчанию мы можем использовать собственный XML-макет для каждой вкладки. Чтобы добиться этого, перетащите все TabLayout.Tabs после прикрепления скользящих вкладок к пейджеру:

public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Get the ViewPager and set it's PagerAdapter so that it can display items ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); SampleFragmentPagerAdapter pagerAdapter = new SampleFragmentPagerAdapter(getSupportFragmentManager(), MainActivity.this); viewPager.setAdapter(pagerAdapter); // Give the TabLayout the ViewPager TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs); tabLayout.setupWithViewPager(viewPager); // Iterate over all tabs and set the custom view for (int i = 0; i < tabLayout.getTabCount(); i++) { TabLayout.Tab tab = tabLayout.getTabAt(i); tab.setCustomView(pagerAdapter.getTabView(i)); } } //... } 

Затем мы добавим метод getTabView (position) в класс SampleFragmentPagerAdapter:

 public class SampleFragmentPagerAdapter extends FragmentPagerAdapter { private String tabTitles[] = new String[] { "Tab1", "Tab2" }; private int[] imageResId = { R.drawable.ic_one, R.drawable.ic_two }; public View getTabView(int position) { // Given you have a custom layout in `res/layout/custom_tab.xml` with a TextView and ImageView View v = LayoutInflater.from(context).inflate(R.layout.custom_tab, null); TextView tv = (TextView) v.findViewById(R.id.textView); tv.setText(tabTitles[position]); ImageView img = (ImageView) v.findViewById(R.id.imgView); img.setImageResource(imageResId[position]); return v; } } 

С помощью этого вы можете настроить любой пользовательский вкладка для каждой страницы в адаптере.

ИСТОЧНИК

Intereting Posts
RecyclerView различные itemDecoration для разных предметов Правильный способ изменения ориентации в Android Вещательный приемник запускается в основном потоке? Android Как понравится сообщение с facebook 3.0 sdk IOS и Android Algorithm или библиотека для оперения краев изображений, похожих на фотошоп Предотвращение пикселизации изображений, отступы listViews и добавление закругленных углов Android 6.0 и выше не очищают данные sqlite с телефона после удаления приложения Скремблирование динамически созданного html внутри приложения для Android Android VpnService защищает сокет, который хранится в собственном коде? Как установить совместное слово Gujarati в Android? Android: изменить цвет с цвета на цвет SDK Google Диска – Загрузка изображения, OCR, Загрузка результата Предотвратить андроид от повторного создания стека активности после сбоя Центр Горизонтальная последняя строка с использованием диапазона Recycler GridLayoutManager Открыть файл при нажатии уведомления?