2010-11-10 17 views
11

Hat jemand versucht, seine eigene Implementierung von ViewGroup mit einigen TextViews zu schreiben?TextView Schwerkraft

Ich habe ein Problem, dass TextViews in einer solchen Implementierung nicht die Schwerkrafteigenschaft TextView.setGravity(Gravity.CENTER) respektieren und Text in der oberen linken Ecke positioniert ist.

Kann mir jemand helfen, herauszufinden, warum?

EDIT:

Ok. Vergiss es, ich habe es schon alleine herausgefunden.

Wenn enyone interessiert ist, ich habe gerade überschrieb Methode onMeasure() (für alle meine Textviews) und geänderten Anruf super.onMeasure()-setMeasuredDimension(int, int) und Schwerkraft begann, normal zu arbeiten.

Grundsätzlich in meinem benutzerdefinierten Layout verwende ich die folgende Klasse Text anzuzeigen:

private static class GravityTextView extends TextView { 

    public GravityTextView(Context context) { 
     super(context); 
    } 

    @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     setMeasuredDimension(widthMeasureSpec, heightMeasureSpec); 
    } 

} 
+0

Cool, danke fürs Teilen! –

+0

Danke für das Teilen! Eine Anmerkung, ich musste measure von onLayout auch auf den TextViews aufrufen. Also übermaß wie oben und Maß nennen. –

+0

versuchen, die Schwerkraft des linearen/relativen Layouts zu setzen –

Antwort

3

Dies ist nicht das falsche Verhalten, das Sie gerade versuchen, die falsche Eigenschaft festzulegen.

Mit TextView.setGravity(Gravity.CENTER) legen Sie die Schwere des TextView-Inhalts fest.

Was Sie suchen, ist die layout_gravity.

+0

Dies ist genau das, was ich versuche zu tun. Wenn sich mein TextView zum Beispiel an einem zufälligen Ort in meinem benutzerdefinierten Layout befindet und 200px Platz und Text darin nur 50px einnimmt, möchte ich, dass der Text in der Mitte dieses TextViews ausgerichtet wird (so wird TextView es tun) behalten Sie immer noch 200px Platz, aber der Text wird in der Mitte sein, so dass es 75px zwischen TextView Grenzen und tatsächlichen Text marginiert). –

Verwandte Themen