web-dev-qa-db-ja.com

タブレイアウトでタブを非表示Android

残念ながら 他の質問には答えられませんでしたAndroid.support.design.widget.TabLayoutでタブを非表示にする方法について。他の質問はTabHostで行われます、コードを変更したくありません。

「3」タブを非表示にします。

enter image description here


フラグメント:

viewPager = (ViewPager) rootView.findViewById(R.id.search_viewPager);
viewPager.addOnPageChangeListener(viewPagerListener);
viewPager.setAdapter(adapter);
tabLayout = (TabLayout) rootView.findViewById(R.id.search_tabs);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setupWithViewPager(viewPager);

レイアウト:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@color/white"
Android:orientation="vertical">

    <Android.support.design.widget.TabLayout
    Android:id="@+id/search_tabs"
    style="@style/TabLayoutStyle"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:background="@color/white"
    Android:elevation="1dp" />

    <Android.support.v4.view.ViewPager
    Android:id="@+id/search_viewPager"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:fitsSystemWindows="true" />

</LinearLayout>
8
Ina Bertolini

adaterListに渡すviewpagerを変更します。3番目の要素「Three」を削除して、消えるようにします。

[〜#〜]編集[〜#〜]

3番目のタブが表示されたら、adapterList/viewPagerを更新するだけです。あなたは勉強するいくつかのアイデアを持つことができます this

2
ddb
 //To hide the first tab 
 ((ViewGroup) tabLayout.getChildAt(0)).getChildAt(0).setVisibility(View.GONE);
 //Set the next  tab as selected tab
 TabLayout.Tab tab = tabLayout.getTabAt(1);
 tab.select(); 
4
prakash selvam

tablayout.getTabAt(int index)を介してTabLayoutのTabViewにアクセスし、それをLinearLayoutとしてキャストして、可視性をGONEに設定できます。

((LinearLayout) tabLayout.getTabAt(0).view).setVisibility(View.GONE);

2
aLL

前のビューを保存する場合(タブアイテム内でカスタムビューを使用した場合):

View view=tab_layout.getTabAt(3).getCustomView();

次に、インデックスidx(たとえばインデックス2)のタブを削除します。

tab_layout.removeTabAt(idx);

次に、そのタブを復元するには、次を使用します。

tab_layout.addTab(tab_layout.newTab().setCustomView(view));