W jaki sposób programowo ustawić marginesy View
za pomocą LinearLayout.LayoutParams
i metody setMargins(int, int, int, int)
, ale jak mogę umieścić margines ujemny w widoku?Ustawianie ujemnego marginesu w programie View programowo
6
A
Odpowiedz
7
dostęp params układ dla układu nadrzędnego i modyfikować je, jak chcesz:
ViewGroup.MarginLayoutParams params =
(ViewGroup.MarginLayoutParams)view.getLayoutParams();
params.topMargin = ...; // etc
// or
params.setMargins(...);
Po zmodyfikowany układ, zadzwoń view.requestLayout()
.
0
Posługiwanie się matematyką wydaje się oszukać mnie wystarczająco.
ViewGroup.MarginLayoutParams params =
(ViewGroup.MarginLayoutParams)view.getLayoutParams();
params.topMargin = 100 - 200; // -100
Dostaję błąd: 'powinien przejść rozwiązany wymiar pikseli zamiast identyfikatora zasobu tutaj. GetResources() getDimension * (- 100)' gdy oddanie ujemną liczbę całkowitą w drugiej linii. –
Dodanie mojego obejścia jako oddzielnej odpowiedzi poniżej. –