如何从TabWidget中删除选定的选项卡指示符?

以下是我想要删除的内容:

在这里输入图像说明

如何replace显示当前显示哪个标签的指示器以及跨越整个tabwidget的蓝线?

指定:所有我想指出哪个选项卡被选中是这样的:

  • 如果选项卡是SELECTED,tab_button_active.9.png应显示为背景
  • tab_button_inactive.9.png应该显示为背景,如果选项卡没有被select。

编辑:设置tabStripEnabled为false不起作用。 添加一个样式,并有“@android:style / Widget.Holo.ActionBar”作为它的父母也是不可能的,因为im目标API级别7和ActionBar在API级别11实现。

Solutions Collecting From Web of "如何从TabWidget中删除选定的选项卡指示符?"

如果android:tabStripEnabled="false"不起作用,那么我也假设调用setStripEnabled(boolean stripEnabled)也没有效果。 如果所有这一切都是真的,那么你的问题可能不在TabWidget中。

我会build议看看你的标签指标。 尝试这些修改。 此代码是从具有选项卡的片段中获取的。

这是创build选项卡指示器视图的代码。

  View indicator = LayoutInflater.from(getActivity()).inflate(R.layout.tab, (ViewGroup) mRoot.findViewById(android.R.id.tabs), false); TabSpec tabSpec = mTabHost.newTabSpec(tag); tabSpec.setIndicator(indicator); tabSpec.setContent(tabContentId); 

你的标签指标视图可能会类似于这个。

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" android:layout_weight="1" android:background="@drawable/tabselector" android:padding="5dp" > <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/tab1icon"/> </LinearLayout> 

现在这里的重要部分是LinearLayout中的android:background="@drawable/tabselector" 。 我看起来像这样。

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Non focused states --> <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_light" /> <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_light" /> <!-- Focused states --> <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_focused_light" /> <!-- Pressed state --> <item android:state_pressed="true" android:drawable="@drawable/tab_pressed_light" /> </selector> 

这个tabselector.xml是您将@drawable/tab_pressed_light@drawable/tab_button_active@drawable/tab_unselected_light的地方@drawable/tab_button_inactive

一定要检查你的tabselector.xml中的所有drawable在底部没有蓝色条。 当我看着你的图像时,我可以看到沿着这条地带的5px间隙,这让我觉得这个地带不是来自你的TabWidget。 希望这可以帮助。

我还有一个黑客。

  TabLayout tabLayout = (TabLayout) fragmentView.findViewById(R.id.tabs); tabLayout.setSelectedTabIndicatorHeight(0); 

这与Eleojasmil的基本上是一样的想法。

对于TabLayout :只需使用app:tabIndicatorColor="@android:color/transparent"

 <android.support.design.widget.TabLayout android:id="@+id/profile_album_tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:animateLayoutChanges="true" android:theme="@style/AppTheme.AppBarOverlay" app:tabBackground="@drawable/tab_background" app:tabIndicatorColor="@android:color/transparent" app:tabPadding="@dimen/common_margin" /> 

这行app:tabIndicatorHeight="0dp"在xml中解决我的问题

  <android.support.design.widget.TabLayout android:id="@+id/view_bottom_tabLayout" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabIndicatorHeight="0dp" //this line app:tabGravity="fill" app:tabMode="fixed" /> 

有一个行的答案,你只需要改变指标的颜色为透明

color.xml

  <color name="transparent2">#00000000</color> 

并把这一行到你的tabwidget

 tabLayout.setSelectedTabIndicatorColor(getResources().getColor(R.color.transparent2)); 

要么

 app:tabIndicatorColor="@color/transparent2" 

尝试将Tab指标高度设置为零:

 tabLayout.setSelectedTabIndicatorHeight(0); 

为您的TabWidget设置属性android:tabStripEnabled="false"

我找了很久,去掉丑陋的holo菜单栏,试了一下。 意外地使用这个代码的另一个原因,它感谢上帝删除它。

  for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) { tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#FF0000")); // unselected TextView tv = (TextView)tabhost.getTabWidget().getChildAt(i).findViewById(android.R.id.title); //Unselected Tabs tv.setTextColor(Color.parseColor("#ffffff")); } 

来源: Android的tabhost更改文字颜色样式

我假设你正在使用ActionBarSherlock。 使用TabWdiget的问题是,它不是ABS的一部分,所以它会看起来像每个Android版本的“本机”。 对于我来说,使用ABS进行标签导航的最佳方法是使用ViewPager和ViewPagerIndicator并设置指标的样式。 缺点是,你的标签必须是碎片。 如果你需要你的标签是活动,那么你应该看看HoloEveryhwhere的家伙是否已经设法添加TabWidget。

 tabHost.getTabWidget().setStripEnabled(false); tabHost.getTabWidget().getChildAt(1).setBackgroundColor(getResources().getColor(R.color.tabcolor)); tabHost.getTabWidget().getChildAt(2).setBackgroundColor(getResources().getColor(R.color.tabcolor)); 

更多信息在这里