Kotlin使用TabLayout显示不了字体

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
}
}


这样就可以显示了

猜你喜欢

转载自blog.csdn.net/qq_33333570/article/details/79538814