Ich habe eine Klasse erstellt, die eine Ansicht erweitert:getLayoutParams gibt null zurück?
public class BoardView extends View {
und ich habe die Breite und Höhe des BoardView in der main.xml Datei der Anwendung angegeben: Ich bin
<mypackage.BoardView
android:id="@+id/board"
android:layout_width="270px"
android:layout_height="270px" />
versuchen, die Breite und Höhe von einer Funktion zu erhalten, die vom Konstruktor der BoardView aufgerufen wird. Hier ist, was ich tue:
ViewGroup.LayoutParams p = this.getLayoutParams();
int h = p.height;
aber GetLayoutParams gibt immer Null zurück. Irgendeine Idee, warum das nicht funktioniert?
Danke für die Hilfe. Alles, was ich wirklich brauchte, war der XML-Attributwert, den ich aus dem AttributeSet im Konstruktor erhalten konnte. Hier ist meine (hässliche) Lösung: String ns = "http://schemas.android.com/apk/res/android"; Zeichenfolge v = attrs.getAttributeValue (ns, "layout_height"); // Convert "270px" in "270" v = v.replace ("px", ""); // Zur Laufzeit ist dieser Wert "270.0" v = v.replace (". 0", ""); int h = Ganzzahl.parseInt (v); – tronman