2010-12-30 7 views
0

Einige sehr, sehr seltsames Verhalten erschien in meiner Android-Anwendung.Button Top-Erhöhung mit mehreren Zeilen

Ich erweiterte Button, um den Standard zu ersetzen. In meiner eigenen Taste eingestellt I: - TextAppearence (Text 16px, fett ..) - BackgroundDrawable (zu einem Selektor, der die Standard-Schaltfläche ersetzt, die Bilder von 60px verwendet) - Gravity: LEFT|CENTER_VERTICAL.

Jedes Mal, wenn der Text war genug, um Wenn die Schaltfläche 2 Textzeilen enthält, würde die obere Füllung erscheinen, wenn sie die Eigenschaft Gravity.CENTER_VERTICAL hätte! Diese

hielt mich überfüllt und googeln für Wochen ... (Set paddingTop, Einleiner und andere einfache Lösungen funktionierten nicht natürlich!)

schließlich die Lösung bekam !!!

@Override 
protected boolean setFrame(int l, int t, int r, int b) { 
    int fixedTopSize = 5; 
    return super.setFrame(l,fixedTopSize, r, b-t); 
} 

Durch Überschreiben dieser Methode auf der erweiterten Knopf schließlich habe ich es ohne die irritierenden Top-Polsterung zu arbeiten ... noch ich verstehe nicht, warum dies geschieht.

Irgendwelche ideia?

Antwort

0

Ich entdeckte, dass es die Schwerkraft des Layouts war zusammen mit der Schwerkraft von den Tasten und das Gewicht (ich war nicht mit GewichtSumme nur layout_weight), die das Layout durcheinander gebracht wurde.

Sehr seltsam, aber ... es war passiert.