2017-02-10 7 views
0

TabLayoutでタブを非表示にするにはどうすればいいですか?ViewPagerと統合されたTabLayout.Tabを非表示にする

私のTabLayoutはViewPagerと統合されているので、各タブにTabItemを使用することはできません。

私はこのようなTabLayoutとViewPagerを初期化しました。おかげ

tabTitles = new ArrayList<>(); 
    tabTitles.add("Tab 1"); 
    tabTitles.add("Tab 2"); // I want to hide this tab and set visible later. 
    tabTitles.add("Tab  3"); 
    tabTitles.add("Tab 4"); 
    tabTitles.add("Tab 5"); 

    adapter = new ProfileBirefAdapter(getSupportFragmentManager(), this, tabTitles); 

    vpgMain.setAdapter(adapter); 

    tabLayout.setupWithViewPager(vpgMain); 

答えて

1

は、私はあなたができる「隠す」タブわからないんだけど、あなたはそれを隠されているように見えますよう&は、再びそれを追加、削除することができます。


ステップ1 - ArrayListのからご希望のタブを削除

を "隠す":そのアップデートがかかりますあなたのViewPagerのアダプタに通知

tabTitles.remove(2); 

場所

vpgMain.getAdapter().notifyDataSetChanged(); 

ステップ2 - "表示"

が再び
をあなたのタブを追加(:あなたのArrayListを操作するためthis guy's答えを使用し、同じ位置に戻ってそれを置くため)

tabTitles.add("Tab 2"); 

そして、もう一度、あなたのアダプタに通知:

vpgMain.getAdapter().notifyDataSetChanged(); 

幸運!

+0

場合によっては動作します。しかし、私の場合は断片的な内部のデータがまだ損失ではないことを意味しています。私は投票しますが、私の問題を解決するための他の方法を探したいと思っています。 – TruongHieu

+0

そのために、私はArrayListを変更して、単純なStringの代わりにフラグメントを保存し、削除の前に非表示にするフラグメントを保存します(フラグメントfrag = tabTitles.get(2)など)。後で、同じフラグメントをArrayListに追加します。別の解決方法は、SharedPreferencesでデータを保存することです。 – Barackos

関連する問題