如何在选项卡栏中移除底部边框并更改选中颜色?

18

有没有可能在选项卡栏中删除底部显示的下划线?当未被选中时它是灰色的。

还有,有没有可能将黄色更改为其他颜色?

alt text

布局xml:http://pastebin.com/M2KqtH1r

7个回答

39

只需在您的xml文件中的tabWidget中执行此操作。

android:tabStripEnabled="false"

希望你能理解。 ;)


这应该被接受为正确答案,因为这是最简单的方法。在执行像Good Guy Greg的回答时,也要删除我的标签图标。 - Shreyash Mahajan
2
这是完美的。要在Java中启用,请使用以下代码:tabHost.getTabWidget().setStripEnabled(false); - Vinoj John Hosan

20
在AndroidManifest.xml文件中:
 <activity android:name=".ActivityName" android:theme="@style/tabTheme"/> 
在 values/styles.xml 中:
 <style name="tabTheme" parent="android:style/Theme"> 
      <item name="android:tabWidgetStyle">@style/Widget.TabWidget</item>
 </style> 

 <style name="Widget.TabWidget" parent="android:Theme"> 
      <item name="android:tabStripEnabled">false</item>
 </style>  

5
感谢你的补充。需要注意的是,选项“tabStripEnabled”是在Android 2.2即API Level 8中引入的。对于旧的API,这里有一个解决方法:https://dev59.com/Vk7Sa4cB1Zd3GeqP69AB。请留意。 - droidgren

15

android:tabStripEnabled="false" 对我没有起作用
通过以下步骤,我成功实现了它的功能

<android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabIndicatorColor="@android:color/transparent"
        app:tabIndicatorHeight="0dp" />

这2个是主要的事情

 app:tabIndicatorColor="@android:color/transparent"
            app:tabIndicatorHeight="0dp"

1
这对于TabLayout是正确的。接受的答案也适用于TabWidget。 - Akhilendra Singh

2

最后我通过以下方法解决了这个问题:

android:alpha="0"

以下是完整的代码:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_horizontal">
        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:tabStripEnabled="false"
            android:alpha="0"
            style="@style/TabStyle" />
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
</TabHost>

2
你已经自定义了选项卡指示器,这意味着你需要覆盖你的选项卡小部件样式。我之前也遇到过这个问题。请查看以下两篇帖子:帖子1帖子2

所以基本上我需要复制这些当前的选项卡图像,使用setIndicator添加它们,然后选择器线就不会出现了? - droidgren
嗯,能否提取Android默认选项卡图像? - droidgren

1

看起来做这件事的方法是将TabWidget嵌套在一个LinerLayout中...请点击这里


我原本以为那会起作用,但实际上并没有。这个人似乎在使用1.5版本,而我在使用2.2版本。不过我已经在我的帖子中更新了我的布局XML。 - droidgren

0

要禁用下面的行,请使用制表符:

app:tabIndicator="@null"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接