2012-08-05 17 views
5

Vorrei personalizzare il widget di tabulazione sostituendo lo stile con il mio stile personale. L'articolo ho intenzione di sostituire è la seguente:Nessuna risorsa trovata corrispondente al nome specificato: attr 'android: tabLayout'

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

ma ho ottenuto questo errore: No risorsa trovato che corrisponde al nome dato: attr 'Android: tabLayout'

ho impostato il genitore stile come questo:

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

l'obiettivo del progetto di costruzione: Android 4.0

ho anche pulito il progetto, ma la errore continua a uscire. Come correggere l'errore?

Grazie in anticipo.

+1

'tabLayout' è un attributo non pubblico attualmente. Ecco il bug che tiene traccia di questo: https://code.google.com/p/android/issues/detail?id=65832 Se vuoi personalizzare TabWidget in questo modo, dovresti farlo a livello di programmazione usando [TabSpec.setIndicator] (http : //developer.android.com/reference/android/widget/TabHost.TabSpec.html#setIndicator (android.view.View)). – Klaus

risposta

2

Ho riscontrato un problema simile. Almeno una parte della soluzione consiste nell'aggiungere l'attributo tabLayout a res/values ​​/ attrs.xml. Ecco la definizione degli stili TabWidget, copiato dal android-16 piattaforma (notare l'attributo tabLayout alla fine):

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

Dal momento che sono di primaria importanza, si vuole anche cambiare:

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

a:

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

questa soluzione non sembra aiutarmi. Qualcos'altro che dovrei fare non è stato menzionato da questa risposta? –

+0

Ho scritto quella risposta un bel po 'di tempo fa. Guardandolo ora, non ti viene in mente niente. Scusate! –

+0

Non è una soluzione. È consentito solo il codice di compilazione. niente di più. Android non utilizzerà attributi personalizzati perché non ne sono a conoscenza. – Enyby