2013-08-01 34 views
0

我有TabPageIndicator中的4個選項卡,並希望在第三個標籤完全消失後,即想要通過按其他控件來關注相應的片段,但他們的標籤不應該是可見的任何方式。 我試圖修改addTab如下圖所示,但它似乎並沒有幫助:ViewPagerIndicator:控制標籤寬度或可見性個人

private void addTab(int index, CharSequence text, int iconResId) { 
    final TabView tabView = new TabView(getContext()); 
    tabView.mIndex = index; 
    tabView.setFocusable(true); 
    tabView.setOnClickListener(mTabClickListener); 
    tabView.setText(text); 

    if (iconResId != 0) { 
     tabView.setCompoundDrawablesWithIntrinsicBounds(0, iconResId, 0, 0); 
    } 

    if (index>3) 
    { 
     tabView.setVisibility(View.GONE); 
     mTabLayout.addView(tabView, new LinearLayout.LayoutParams(0, 
       0, 0)); 
    } else 
    mTabLayout.addView(tabView, new LinearLayout.LayoutParams(0, 
      MATCH_PARENT, 1)); 
} 

UPDATE: 發現這個愚蠢的錯誤:

if (index>3) 

應該

if (index>2) 

因爲製表符從0開始編號,而不是從1開始編號。

+0

你可以添加一個描述你盡力實現請。因爲你的方法對我來說似乎有點奇怪。也許我們可以幫助你,當你描述你想達到什麼。 –

+0

@viperbone沒關係,我已經發現了一個錯誤(它應該是'index> 2'),它可以工作。不過,我需要關注 - 第三張之後的頁面沒有可見的標籤頁,只有自己的頁面。 –

回答

0

對不起,這只是普通的愚蠢 - 「後第三次一個」不轉化爲

if (index>3) {..} 

標籤從0被索引,所以它應該是

if (index>2) {..} 
+0

我在這裏找不到這樣的問題,所以我想有人可能會使用它,我不會刪除它。 –