2012-08-05 9 views
5

Me gustaría personalizar el widget de pestaña reemplazando el estilo con mi propio estilo. El tema que voy a reemplazar es el siguiente:No se encontraron recursos que coincidan con el nombre de pila: attr 'android: tabLayout'

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

pero me dio este error: Ningún recurso encontró que coincide con el nombre dado: attr 'android: tabLayout'

he puesto el padre estilo de la siguiente manera:

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

el tipo de generación del proyecto: Android 4.0

también he limpiado el proyecto, pero la error todavía sale. ¿Cómo solucionar el error?

Gracias de antemano.

+1

'tabLayout' es un atributo que no sea pública actualmente. Aquí está el error al rastrear esto: https://code.google.com/p/android/issues/detail?id=65832 Si desea personalizar TabWidget de esta manera, puede que tenga que hacerlo mediante programación utilizando [TabSpec.setIndicator] (http : //developer.android.com/reference/android/widget/TabHost.TabSpec.html#setIndicator (android.view.View)). – Klaus

Respuesta

2

Me encontré con un problema similar. Al menos parte de la solución es agregar el atributo tabLayout a res/values ​​/ attrs.xml. Aquí está la definición de los estilos TabWidget, copiado del androide-16 plataforma (nota el atributo tabLayout al final):

<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> 

Dado que está sustituyendo, también querrá cambiar:

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

a:

<item name="tabLayout">... 
+0

esta solución no parece ayudarme. ¿Algo más que debería hacer eso no fue mencionado por esta respuesta? –

+0

Escribí esa respuesta hace bastante tiempo. Mirándolo ahora, nada me viene a la mente. ¡Lo siento! –

+0

No es una solución. Solo permite el código de compilación. nada mas. Android no usará atributos personalizados porque no lo sabe. – Enyby

Cuestiones relacionadas