Android: Do Ho solo un colpo per ogni proprietà attraverso l'uso di temi? Non c'è nulla come CSS in Android?
-
04-10-2019 - |
Domanda
Qui scrivono:
Per applicare una definizione di stile come un tema, è necessario applicare lo stile ad un'attività o applicazione nel manifesto di Android. Quando lo fa, ogni vista all'interno della Attività o applicazione si applicheranno ogni proprietà che supporta. Per ad esempio, se si applica il CodeFont stile dagli esempi precedenti ad un Attività, poi tutti gli elementi che Visualizza sostenere le proprietà di stile di testo saranno applicarle.
Così, quando ho impostato TextColor a Red, fare tutti gli elementi con il cambiamento di testo al rosso ?? Arent ci potente identificatore come in CSS fogli di stile? Ho appena vedere il concetto di stili (style="@style/CodeFont"
) praticabili.
Soluzione
In risposta ai vostri commenti si potrebbe trovare quello che cercate con la textAppearance
proprietà.
Aprire il file themes.xml qui:
https: // android.googlesource.com/platform/frameworks/base/+/froyo-release/core/res/res/values/themes.xml
Se fate una scoperta per textAppearance si notano varie voci come ad esempio:
<style name="Theme">
<item name="textAppearanceButton">@android:style/TextAppearance.Widget.Button</item>
...
<item name="panelTextAppearance">?android:attr/textAppearanceInverse</item>
...
In questo modo si consente una certa misura allo stile dei componenti in tutta l'applicazione, come mostrato nell'esempio Maragues.
Così, mentre la sua non è possibile controllare pienamente lo stile di tutti gli elementi figlio withint dire una listview, scorrere visualizzare ecc, c'è qualche supporto limitato per controllare gli stili di alcuni componenti di testo base, come la TextView eo Button.
Altri suggerimenti
Se avete letto appena sotto il testo citato:
Per impostare un tema per tutte le attività della vostra applicazione, aprire il file AndroidManifest.xml e modificare il tag per includere l'attributo android: tema con il nome di stile
Se volete un tema applicato a un solo attività nell'applicazione, quindi aggiungere l'androide:. Attributo tema al tag al posto
E un po ', dopo di che, viene descritto come ereditare e di override proprietà, proprio come i CSS:
Se ti piace un tema, ma si vuole modificarlo, basta aggiungere il tema come il genitore del vostro tema personalizzato. Ad esempio, è possibile modificare la finestra di dialogo tema tradizionale di utilizzare la propria immagine di sfondo come questo:
<style name="CustomTextView" parent="@android:style/Widget.TextView">
<item name="android:background">@drawable/custom_background</item>
</style>
Poi, per Interit da CustomTextView
<style name="CustomTextView.RedText">
<item name="android:textColor">@color/red</item>
</style>
Una volta che la progettazione del layout XML, è possibile ereditare un tema e sostituire le proprietà
<TextView
android:id="@+id/example"
style="@style/CustomTextView.RedText"
android:textColor="@color/green" />
Credo che si dovrebbe leggere nuovamente la pagina lei stesso collegato, è ben spiegato:)