Ich habe eine benutzerdefinierte Ansicht mit dem Namen erstellt Graphview
. Hier ist die Struktur für die GraphView-Klasse.
public class GraphView extends View {
public GraphView(Context context, float[] values, String title, String[] horlabels, String[] verlabels, boolean type) {
super(context);
........
}
..................
.................
}
Ich habe die Ansicht in einem Tablerow mit hinzugefügt addview()
. Es funktioniert gut. Jetzt möchte ich Höhe und Breite für die einstellen GraphView
. Wie geht das?
LayoutParams
sollte aus dem Layout stammen, in demgraphView
das platziert ist. Wenn sich beispielsweise die XML-Layoutdatei daringraphView
befindetRelativeLayout
, sollten Sienew RelativeLayout.LayoutParams(width, height)
Sie können Höhe und Breite folgendermaßen einstellen:
quelle
myGraphView.getLayoutParams().height = 100;
.this.getLayoutParams().height = 100
, stellen Sie sicher, dass Sie es befolgenthis.setLayoutParams(this.getLayoutParams())
, sonst wird es nichts tun (nützlich).Sie können die Höhe und Breite einer Ansicht in einem relativen Layout wie diesem festlegen
quelle
setLayoutParams()
ist erforderlich, weil es andere Methoden wieresolveLayoutParams()
undrequestLayout()
layoutParams
Initiierung einer Ansicht erhalten, handelt es sich um eine NPE. Erklären Sie bitte, an welchem Punkt Sie dies ausführen.Auf Kotlin können Sie Breite und Höhe jeder Ansicht direkt mithilfe ihrer virtuellen Eigenschaften festlegen:
quelle
spin12
ist dein Spinner und 200 , 120 istwidth
undheight
für dichspinner
.quelle
Dies ist eine Kotlin-basierte Version, vorausgesetzt, die übergeordnete Ansicht ist eine Instanz von
LinearLayout
.Dies ermöglicht das Einstellen der Breite und Höhe (
100
und200
) in einer einzelnen Zeile.quelle