删除TabLayout的当前Tab下的select器行

我正在使用带有3个选项卡的TabLayout。 我自定义了我的选项卡的视图,因此,我需要删除我的选项卡下的以下行(截图不来自我的应用程序):

在这里输入图像说明

使用TabHost或TabWidget,因此,我不能使用setStripEnabled(false) 。 将背景设置为透明也不会改变任何东西。

这是我的xml:

 <android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:padding="4dip" android:layout_above="@+id/bottomcontent3" android:gravity="center_horizontal" android:background="@android:color/white" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.TabLayout android:id="@+id/comtabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dp" app:tabPaddingStart="0dp" app:tabPaddingEnd="0dp" app:tabMode="fixed" app:tabGravity="fill" android:background="@android:color/white" /> <android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/compager" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> </android.support.design.widget.AppBarLayout> 

我发现的所有答案都是使用TabWidgetTabWidget 。 在我的例子中,我使用了一个TabLayout和三个Tab 。 在这种情况下如何删除这条线? 非常感谢。

编辑由于某些原因,TabLayout中的某些方法无法在我的代码中parsing。 有我使用的Java代码:

 TabLayout tabLayout = (TabLayout) view.findViewById(R.id.comtabs); tabLayout.setTabMode(TabLayout.MODE_FIXED); // add tabs tabLayout.addTab(tabLayout.newTab()); tabLayout.addTab(tabLayout.newTab()); tabLayout.addTab(tabLayout.newTab()); RelativeLayout layout1 = (RelativeLayout) inflater.inflate(R.layout.communitytablayoutleft, container, false); RelativeLayout layout2 = (RelativeLayout) inflater.inflate(R.layout.communitytablayout, container, false); RelativeLayout layout3 = (RelativeLayout) inflater.inflate(R.layout.communitytablayoutright, container, false); tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); ViewPager pager = (ViewPager) view.findViewById(R.id.compager); CommunityPagerFragment adapter = new CommunityPagerFragment(getChildFragmentManager()); pager.setAdapter(adapter); tabLayout.setupWithViewPager(pager); tabLayout.setOnTabSelectedListener(this); ((TextView)layout1.findViewById(R.id.tabtext)).setText(tabs[0]); ((TextView)layout2.findViewById(R.id.tabtext)).setText(tabs[1]); ((TextView)layout3.findViewById(R.id.tabtext)).setText(tabs[2]); tabLayout.getTabAt(0).setCustomView(layout1); tabLayout.getTabAt(1).setCustomView(layout2); tabLayout.getTabAt(2).setCustomView(layout3); //tabLayout.set return view; 

及其import:

 import android.support.design.widget.TabLayout; 

Solutions Collecting From Web of "删除TabLayout的当前Tab下的select器行"

正如提出的两个答案,关键是tabIndicatorHeight属性。

但是,API的方法出于某些原因无法解决。 在这种情况下,你必须直接从xml中解决这个问题,这样:

  app:tabIndicatorHeight="0dp" 

<android.support.design.widget.TabLayout>布局中。

举个例子:

 <android.support.design.widget.TabLayout android:id="@+id/comtabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dp" app:tabIndicatorHeight="0dp" app:tabPaddingStart="0dp" app:tabPaddingEnd="0dp" app:tabMode="fixed" app:tabGravity="fill" android:background="@android:color/white" /> 

似乎有API像;
void setSelectedTabIndicatorColor(int color)
void setSelectedTabIndicatorHeight(int height)

http://developer.android.com/reference/android/support/design/widget/TabLayout.html#setSelectedTabIndicatorColor(int&#xFF09;

即使我最近也面临同样的问题。 我遇到了高度xml属性,并将其更改为0dp为我做了诡计。

 app:tabIndicatorHeight="0dp" 

要么

同样,我觉得改变指标的颜色属性与选项卡的背景相同也应该这样做。 我还没有testing这个解决scheme,但我认为它也应该工作。

 app:tabIndicatorColor="#9cc8df" 

第一个select是更好,它为我工作。

这些都不如实际禁用指标,但无论如何解决问题。

对于Tab布局,您只需使用此选项 – “tabLayout.setSelectedTabIndicatorColor(Color.TRANSPARENT);”

 TabLayout tabLayout = (TabLayout) fragmentView.findViewById(R.id.tabs); tabLayout.setSelectedTabIndicatorColor(Color.TRANSPARENT); 

您可以将选项卡指示符高度设置为0以“删除”它,例如使用: tabLayout.setSelectedTabIndicatorHeight(0);