5

I would like to customize tab widget by replacing the style with my own style. The item I am going to replace is as follow :

 <item name="android:tabLayout">@android:layout/tab_indicator_holo</item>

But I got this error : No resource found that matches the given name: attr 'android:tabLayout'

I have set the parent style like this :

<style name="customTabWidget" parent="@android:style/Widget.Holo.TabWidget">

The Project build target : Android 4.0

I also have cleaned the project but the error still exits. How to fix the error?

Thanks in advance.

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
user1134475
  • 415
  • 1
  • 8
  • 18
  • 1
    `tabLayout` is a non-public attribute currently. Here's the bug tracking this: https://code.google.com/p/android/issues/detail?id=65832 If you want to customize TabWidget this way you might have to do it programmatically using [TabSpec.setIndicator](http://developer.android.com/reference/android/widget/TabHost.TabSpec.html#setIndicator(android.view.View)). – Klaus Jul 05 '14 at 07:28

1 Answers1

2

I encountered a similar problem. At least part of the solution is to add the tabLayout attribute to res/values/attrs.xml. Here is the definition of the TabWidget styles, copied from the android-16 platform (notice the tabLayout attribute at the end):

<declare-styleable name="TabWidget">
    <!-- Drawable used to draw the divider between tabs. -->
    <attr name="divider" />
    <!-- Determines whether the strip under the tab indicators is drawn or not. -->
    <attr name="tabStripEnabled" format="boolean" />
    <!-- Drawable used to draw the left part of the strip underneath the tabs. -->
    <attr name="tabStripLeft" format="reference" />
    <!-- Drawable used to draw the right part of the strip underneath the tabs. -->
    <attr name="tabStripRight" format="reference" />
    <!-- Layout used to organize each tab's content. -->
    <attr name="tabLayout" format="reference" />
</declare-styleable>

Since you are overriding, you will also want to change:

 <item name="android:tabLayout">...

to:

 <item name="tabLayout">...
Derek Kurth
  • 1,771
  • 1
  • 19
  • 19