TabLayout'ta bir sekmeyi programlı olarak nasıl seçmeliyim?
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
Seçmek istediğiniz sekmenin dizinini biliyorsanız, bunu şu şekilde yapabilirsiniz:
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
TabLayout.Tab tab = tabLayout.getTabAt(someIndex);
tab.select();
Bu teknik, TabLayout'u ViewPager olmadan tek başına kullansanız bile işe yarar (bu alışılmadık bir durumdur ve muhtemelen kötü bir uygulamadır, ancak yapıldığını gördüm).
Bu muhtemelen nihai çözüm değildir ve TabLayoutu bir
ViewPager` ile birlikte kullanmanızı gerektirir, ancak ben bu şekilde çözdüm:
void selectPage(int pageIndex)
{
viewPager.setCurrentItem(pageIndex);
tabLayout.setupWithViewPager(viewPager);
}
Bu kodu kullanmanın performans üzerindeki etkisinin ne kadar büyük olduğunu, önce yöntemi çalıştırırken Android Studio'daki CPU ve bellek monitörlerine bakarak, ardından sayfalar arasında kendim gezindiğimde (kaydırma hareketlerini kullanarak) CPU ve belleğe binen yükle karşılaştırarak test ettim ve fark önemli ölçüde büyük değil, yani en azından korkunç bir çözüm değil...
Umarım bu birilerine yardımcı olur!