开源项目: FlycoTabLayout SlidingTabLayout不显示字体的问题

£可爱£侵袭症+ 提交于 2020-03-06 10:25:30

异常:
导入优秀开源项目 FlycoTabLayout 使用后,Tab莫名其妙的不显示文字,头疼。

解决办法:
项目中存在两个layout_tab.xml文件 ,将其中一个布局文件重命名,只能这么办了。


下面是解决过程,如节省时间,可跳过。

经过一番断点调试发现:
tv_tab_title 为null,这就很蛋疼了

  private void addTab(final int position, String title, View tabView) {
        TextView tv_tab_title = tabView.findViewById(R.id.tv_tab_title);
        if (tv_tab_title != null && title != null) {
            tv_tab_title.setText(title);
        }

        tabView.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                int position = mTabsContainer.indexOfChild(v);
                if (position != -1) {
                    setCurrentTab(position);
                }
            }
        });

再看引用代码:

public void notifyDataSetChanged() {
        mTabsContainer.removeAllViews();
        this.mTabCount = mTitles == null ? mViewPager.getAdapter().getCount() : mTitles.size();
        View tabView;
        for (int i = 0; i < mTabCount; i++) {
            tabView = View.inflate(mContext, R.layout.layout_tab, null);
            CharSequence pageTitle = mTitles == null ? mViewPager.getAdapter().getPageTitle(i) : mTitles.get(i);
            addTab(i, TextUtils.isEmpty(pageTitle) ? "" : pageTitle.toString(), tabView);
        }
        if (mCurrentTab != mViewPager.getCurrentItem()) {
            setCurrentTab(mViewPager.getCurrentItem());
        }
        updateTabStyles();
    }

重点这句:
tabView = View.inflate(mContext, R.layout.layout_tab, null);
于是,我查看了layout_tab.xml布局文件,我想怎么就找不到了呢?

结果发现:
我的项目中有两个layout_tab.xml文件,一个是另一个开源库KChart中的?????
果不其然,项目引用错了布局文件,这就是原因

修改其中一个文件名称后,完美显示。

.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!