Domanda

Ho alcune visualizzazioni personalizzate nel mio progetto Android e ho aggiunto i dettagli pertinenti al file ATR.XML. E ora posso implementare i miei oggetti tramite XML. Funziona bene.

Come si modellino questi elementi? Quando provo a utilizzare i miei attributi personalizzati in Styles.xml è un errore "Nessuna risorsa trovata che corrisponde al nome dato:"

Per l'utilizzo delle visualizzazioni personalizzate nel normale sviluppo XML utilizzo xmlns: app = "http://schemas.android.com/apk/res/bla.bla.bla". Qual è il corretto da utilizzare negli stili?

Questo è l'aspetto del mio stile attualmente

<style name="Journey_DaySelect_Sunday">
    <item name="app:onImage">@drawable/day_sunday_selected</item>
    <item name="app:offImage">@drawable/day_sunday</item>
</style>
È stato utile?

Soluzione

Dopo una ricerca più intensa su Google ho rinunciato a trovarlo rispondeva altrove e per caso Ho provato a usare lo spazio dei nomi assoluto del mio file R generato ha funzionato. Possa questo risolvere tutti i tuoi problemi.

Usa lo spazio dei nomi contenente il tuo file R

<style name="Journey_DaySelect_Sunday" parent="Journey_DaySelect">
    <item name="AppZappy.NIRailAndBus:onImage">@drawable/day_sunday_selected</item>
    <item name="AppZappy.NIRailAndBus:offImage">@drawable/day_sunday</item>
</style>

Altri suggerimenti

Per chiarimenti, l'attributo del nome dell'articolo dovrebbe essere lo stesso di quello che è nell'attributo Nome Dichiarabile di ATR.XML + ":" + il nome dell'attributo.

Per esempio:

ATRS.XML:

<?xml version="1.0" encoding="utf-8"?>
<resources>  
    <declare-styleable name="com.chuck.norris">
        <attr name="actionBarTextColor" format="color"/>
    </declare-styleable> 
</resources>

style.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="myNewStyle">
        <item name="android:textColor">#FFFF0000</item>
        <item name="com.chuck.norris:actionBarTextColor">#ffff0000</item>
    </style>
</resources>

Puoi quindi applicare questo stile a tutte le attività utilizzando un tema nel tuo file manifest.xml. Ovunque esista una vista personalizzata che desideri utilizzare l'attributo "ActionBartextColor", è quindi possibile utilizzare il codice Java:

TypedArray typedArray = context.obtainStyledAttributes(attrSet, R.styleable.com_chuck_norris);
COLOR_ACTION_BAR_TEXT = typedArray.getColor(R.styleable.com_chuck_norris_actionBarTextColor, 0xff0000ff);
typedArray.recycle();

Non sono sicuro del motivo per cui non puoi semplicemente definire il tuo schema nel tuo file Style.xml come è stato chiesto sopra, ma sembra essere una limitazione di Style.xml.

Prova questa soluzione

<style name="Journey_DaySelect_Sunday">
<item name="onImage">@drawable/day_sunday_selected</item>
<item name="offImage">@drawable/day_sunday</item>
</style>

Riferimento (cinese)

Se voi ragazzi lo pensano utile, lo tradurrò.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top