2017-06-23 3 views
2

Ich bin neu in Android-Entwicklung und ich bin über ein Problem gestolpert, das ich nicht mit Hilfe der vorhandenen StackOverflow Fragen lösen konnte.Ändern Android: Layout_Height und Android: Schwerkraft in styles.xml

In der Liste des benutzerdefinierten Artikels Ich bin ein Textview Objekt geladen, die zwei verschiedene Arten verwenden kann (beide definierten in styles.xml) - wenn es ein sekundäres ist Textview Objekt angewandter Stil ist itemHeadingText_Medium, und wenn nicht, ist es itemHeadingText_Large. Ich ändere den Stil programmatisch in der ListItemAdapter Klasse.

<!-- Heading in each list item --> 
<style name="itemHeadingText_Large" parent="@android:style/TextAppearance.Large"> 
    <item name="android:textStyle">bold</item> 
    <item name="android:textColor">@android:color/black</item> 

    <!-- Testing height and gravity --> 
    <item name="android:layout_height">100dp</item> 
    <item name="android:gravity">center_vertical</item> 
</style> 

<!-- Heading in each list item --> 
<style name="itemHeadingText_Medium" parent="@android:style/TextAppearance.Medium"> 
    <item name="android:textStyle">bold</item> 
    <item name="android:textColor">@android:color/black</item> 
</style> 

Leider die android: layout_height und android: Schwere sind nicht auf die Ansicht angewendet, und ganze app sieht aus wie that. Hier ist, wie beide Textviews sind definiert:

 <TextView 
      android:id="@+id/heading" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@android:color/darker_gray"/> 
     <TextView 
      android:id="@+id/secondary" 
      style="@style/itemSecondaryText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@android:color/holo_red_light"/> 

Ich mag senkrecht zum Zentrum der Lorem Ipsum Überschrift des zweiten Artikels im Screenshot zur Verfügung gestellt.

EDIT: 25. Juni 2017

ich es geschafft, zu erreichen, was ich wollte die Höhe, indem programmatisch unter Verwendung der getLayoutParams() Höhe und das Hinzufügen des Android. Schwere Attribut auf den Textview XML-Definition - Schließlich kann Text in beiden Stilen vertikal innerhalb seiner TextView zentriert werden.

Dennoch ist meine Frage, wie man das in styles.xml ist noch offen!

+0

Können Sie bitte den vollständigen XML-Dateicode dieses Layouts posten? –

+0

@ZohaibHassan Sicher, hier ist es: https://pastebin.com/y8nA2tbh –

+0

Ich überprüfe Ihren Code und komme bald wieder zu Ihnen. –

Antwort

0

android: Schwerkraft festlegen, wie der Text innerhalb des Textview angelegt werden soll, wenn die Ansicht größer ist als der Text ist

android: layout_gravity wird festlegen, wie der Blick sich in seiner Viewgroup angelegt werden soll.

Ich würde versuchen, die Schwerkraft mit layout_gravity ersetzen

+0

Keine Änderung sichtbar, wenn die layout_gravity verwendet wird. Ich verwende die Gravitation hier, weil meine ursprüngliche Idee war, TextView größer zu machen und dann den Text darin zu zentrieren. –

0

Das Problem, das ich in Ihrem Code zu sehen ist:

<TextView 
     android:id="@+id/secondary" 
     style="@style/itemSecondaryText" // Look at this line 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@android:color/holo_red_light"/> 

Sie verwenden „itemSecondaryText“ Stil für Ihre Textview, aber in Ihrem styles.xml Es gibt keinen Stil namens "itemSecondaryText". Sie haben "itemHeadingText_Medium" und "itemHeadingText_Large" in Ihrer style.xml, aber es gibt kein Element namens "itemSecondaryText".

Ich denke, das ist das Problem, sonst sieht alles gut aus.

+0

Dies ist der andere TextView, der für sekundären Text ("Ipsum Ipsum Lorem Ipsum" in dem Screeshot, den ich zur Verfügung gestellt habe) und es funktioniert perfekt. Wie ich schon sagte, ändere ich den Stil für den ersten TextView nur programmatisch. Das ist also nicht das Problem. –

+0

TextView, welcher Stil geändert wird, verwendet die ID "Überschrift". –

Verwandte Themen