Utworzyłem niestandardowy widok o nazwie Graphview
. Oto struktura klasy GraphView.
public class GraphView extends View {
public GraphView(Context context, float[] values, String title, String[] horlabels, String[] verlabels, boolean type) {
super(context);
........
}
..................
.................
}
Dodałem widok w tabeli za pomocą addview()
. Działa dobrze. Teraz chcę ustawić wysokość i szerokość dla GraphView
. Jak to zrobić?
LayoutParams
Powinna wynosić od układu w którymgraphView
jest umieszczony. Na przykład, jeśli plik układu XMLgraphView
jest umieszczony wewnątrzRelativeLayout
, należy użyćnew RelativeLayout.LayoutParams(width, height)
Możesz ustawić wysokość i szerokość w następujący sposób:
źródło
myGraphView.getLayoutParams().height = 100;
.this.getLayoutParams().height = 100
, pamiętaj, aby postępować zgodnie z nimthis.setLayoutParams(this.getLayoutParams())
, w przeciwnym razie nic nie da (przydatne).możesz ustawić wysokość i szerokość widoku w układzie względnym, takim jak ten
źródło
setLayoutParams()
jest wymagane, ponieważ wywołuje inne metody, takie jakresolveLayoutParams()
irequestLayout()
layoutParams
widoku będzie NPE, proszę wyjaśnić, w jakim momencie to uruchomić?W Kotlin możesz ustawić szerokość i wysokość dowolnego widoku bezpośrednio za pomocą ich wirtualnych właściwości:
źródło
spin12
to twój spinner, a 200 , 120 jestwidth
iheight
dla twojegospinner
.źródło
To jest wersja oparta na Kotlinie, przy założeniu, że widok nadrzędny jest instancją
LinearLayout
.Pozwala to ustawić szerokość i wysokość (
100
i200
) w jednej linii.źródło