開源項目: FlycoTabLayout SlidingTabLayout不顯示字體的問題

異常:
導入優秀開源項目 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中的?????
果不其然,項目引用錯了佈局文件,這就是原因

修改其中一個文件名稱後,完美顯示。

.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章