fun initViewPager() {
val fragments = arrayListOf<Fragment>(OneFragment(), TwoFragment(), ThreeFragment(), FourFragment())
val myPagerAdapter = PagerAdapter(fragmentManager)
myPagerAdapter.setFragments(fragments)
viewPager.setAdapter(myPagerAdapter)
tabLayot.addTab(tabLayot.newTab().setText(“Tab1”))
tabLayot.addTab(tabLayot.newTab().setText("Tab2"))
tabLayot.addTab(tabLayot.newTab().setText("Tab3"))
tabLayot.addTab(tabLayot.newTab().setText("Tab4"))
tabLayot.setupWithViewPager(viewPager);
}
设置了setText时发现显示不了字体.在Tablayout里有这个方法
void populateFromPagerAdapter() {
removeAllTabs();
if (mPagerAdapter != null) {
final int adapterCount = mPagerAdapter.getCount();
for (int i = 0; i < adapterCount; i++) {
addTab(newTab().setText(mPagerAdapter.getPageTitle(i)), false);
}
// Make sure we reflect the currently set ViewPager item
if (mViewPager != null && adapterCount > 0) {
final int curItem = mViewPager.getCurrentItem();
if (curItem != getSelectedTabPosition() && curItem < getTabCount()) {
selectTab(getTabAt(curItem));
}
}
}
}
addTab(newTab().setText(mPagerAdapter.getPageTitle(i)), false)原来要在Adapter里重写getPageTitle这个方法
class PagerAdapter(fm: FragmentManager, var tabs: ArrayList<String>) : FragmentPagerAdapter(fm) {
private var mFragmentList: List<Fragment>? = null
fun setFragments(fragments: ArrayList<Fragment>) {
mFragmentList = fragments
}
override fun getItem(position: Int): Fragment {
return mFragmentList!![position]
}
override fun getPageTitle(position: Int): CharSequence = tabs[position]
override fun getCount(): Int {
return mFragmentList!!.size
}
}
这样就可以显示了