2012-08-05 13 views
5

Sekme widget'ını kendi stilimle değiştirerek özelleştirmek istiyorum. Ben yerine gidiyorum madde aşağıdaki gibidir:Belirtilen adla eşleşen kaynak bulunamadı: attr 'android: tabLayout'

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

Ama bu hata var: Hiçbir kaynak adı verilen maçları bulundu: attr 'android: tabLayout'

Ben üst belirledik böyle stili:

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

Proje inşa hedefi: 4,0

Android ben de projeyi temizlenmiş ama var hata hala çıkıyor. Hata nasıl düzeltilir?

Şimdiden teşekkürler.

+1

'tabLayout' henüz kamuya açık olmayan bir özelliktir. İşte bunu izleyen hata: https://code.google.com/p/android/issues/detail?id=65832 Eğer TabWidget'i bu şekilde özelleştirmek isterseniz, programlı olarak [TabSpec.setIndicator] (http: : //developer.android.com/reference/android/widget/TabHost.TabSpec.html#setIndicator (android.view.View)). – Klaus

cevap

2

Benzer bir sorunla karşılaştım. Çözümün en azından bir kısmı, tabLayout özniteliğini res/values ​​/ attrs.xml dosyasına eklemektir. İşte android-16 platformu kopyalanan TabWidget stilleri tanımı vardır (sonunda tabLayout niteliğini fark):

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

Eğer geçersiz kılma olduğundan, ayrıca değiştirmek isteyeceksiniz:

<item name="android:tabLayout">... 
için

:

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

Bu çözüm bana yardımcı görünmüyor. Yapmam gereken başka bir şey bu cevaptan bahsetmedi mi? –

+0

Bu cevabı oldukça uzun bir süre önce yazdım. Şimdi baktığımızda hiçbir şey akla geliyor. Afedersiniz! –

+0

Bu çözüm değil. Sadece derleme koduna izin verilir. daha fazla bir şey yok. Android, bununla ilgili bilmediğiniz için özel özellikler kullanmaz. – Enyby