2016-12-30 15 views
5

Napisałem kod, aby ustawić wysokość i szerokość widzenia dynamicznieview.getLayoutParams(). Szerokość nie działa z nugat

view.getLayoutParams().width = 120; 
view.getLayoutParams().height = 120; 

To doskonale współpracuje z urządzeniami poniżej nugat, nugat ale to nie działa. Po prostu przyjmuje wysokość i szerokość jako 0. Jakieś zmiany po aktualizacji nougatu?

Aktualizacja:

Jednak to działa

1), gdy używam view.requestLayout() po ustawieniu wysokości i szerokości
2) view.setLayoutParams(new LinearLayout.LayoutParams(200, 120));

Więc dlaczego to działa na gotowych urządzeń nugat bez używając tych 2 opcji?

+0

Gdzie są yo używasz tego kodu? Czy jesteś pewien, że układ został już narysowany? – GVillani82

+0

@ GVillani82 Znajduje się wewnątrz 'onGlobatLayout()', więc zostanie wywołany po utworzeniu widoku. Użyłem 'addOnGlobalLayoutListener()' –

Odpowiedz

4

Spróbuj zadzwonić po ustawieniu width i height:

view.requestLayout() 
+0

Czy jest on aktualizowany w nougat? ponieważ bez wywoływania 'requestLayout()' również działa na urządzeniach pre nougat –

+0

Nie jestem pewien nougat tylko niektóre myśli o zmianie parametrów. – kenzo

+0

Dzięki, obie odpowiedzi działają –

7

spróbować

view.setLayoutParams(new LinearLayout.LayoutParams(200, 120)); 

czy to

ViewGroup.LayoutParams params = view.getLayoutParams(); 
params.height = 130; 
params.width = 130; 
view.setLayoutParams(params); 

nadzieję, że pomaga się

+0

Dzięki, obie odpowiedzi pracują –

+0

Dziękuję wam @Ravi Rupareliya za głosowanie ... i powitanie. –

Powiązane problemy