2016-04-12 10 views
0

Ich habe eine kurze Frage!Warum funktionieren einige meiner Stile nicht mit niedrigeren APIs?

In meiner styles.xml Datei habe ich

<style name="TextViewStyle" parent="android:Widget.TextView"> 
    <item name="android:padding">20px</item> 
    <item name="android:background">#9cd0e8</item> 
    <item name="android:textColor">#254b7c</item> 
    <item name="android:textSize">18sp</item> 
    <item name="android:textStyle">bold</item> 
</style> 

Und in meinem activity_main.xml, ich habe

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:theme="@+styles/TextViewStyle" 
    android:text="Sample Text"/> 

Was ich versuche zu tun, in meiner Android-Anwendung, Eine bestimmte Aktivität Ich plane, viele TextViews mit ähnlichen Eigenschaften zu platzieren. Anstatt diese "Eigenschaften" jedes Mal mit jeder TextView-Instanz zu schreiben, gruppiere ich sie in einem Stil in der Datei styles.xml und lege das Thema jeder meiner TextViews auf diesen Stil fest.

Es funktioniert gut und macht, was ich will, aber nur mit APIs über 21! Meine Anwendung soll Geräte ab API-Stufe 15 unterstützen. Warum funktioniert mein Ansatz nicht mit niedrigeren APIs?

Bitte helfen Sie bald. Ich muss das bald beenden.

EDIT

von ‚arbeiten‘, meinte ich, dass die Attribute ich in meinem Stil gesetzt (Polsterung, Farbe, etc.) erscheinen auf den Textviews, wie sie sollten. In niedrigeren APIs erscheinen die TextViews jedoch so, als ob ich kein Attribut auf sie angewendet hätte. Klartext erscheint statt einer formatierten.

+1

Was unterscheidet die beiden Versionen? Wie in, was funktioniert nicht? – ChrisStillwell

+0

@ChrisStillwell Mit 'arbeiten' meinte ich, dass die Attribute, die ich in meinem Stil (Padding, Farbe, etc.) eingestellt habe, auf den TextViews so erscheinen, wie sie sollten. In niedrigeren APIs erscheinen die TextViews jedoch so, als ob ich kein Attribut auf sie angewendet hätte. Klartext erscheint statt einer formatierten. –

+0

Da Sie bereits die Ressourcendatei haben, benötigen Sie nicht das "+" vor "styles/TextViewStyle". Nicht sicher, ob das die Dinge für dich repariert oder nicht, aber einen Versuch wert. – ChrisStillwell

Antwort

0
  1. entfernen Eltern von Ihrem Stil
  2. entfernen android: Thema aus Textview, (warum wird + schreiben?)
  3. statt Thema dieses setzen in Ihre Textview

style = "@ style/TextViewStyle"

btw, Verwendung dp statt px;)

+0

Danke! Ich hatte das + dort, weil mein Studio aus irgendeinem Grund mir einen Fehler ohne es gab. Das Problem war mit Android: Thema, denke ich. Warum DP und nicht px, obwohl? –

+0

siehe hier: http://stackoverflow.com/a/2025541/3360896 und hier: http://developer.android.com/guide/practices/screens_support.html –

Verwandte Themen