2016-12-30 4 views
5

Я написал код, чтобы установить высоту и ширину зрения динамическиview.getLayoutParams(). Ширина не работает с нугой

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

Он отлично работает с ниже нуга устройств, но с нугой он не работает. Он просто принимает высоту и ширину как 0. Любые изменения после обновления nougat?

Update:

Однако это работает

1), когда я использую view.requestLayout() после установки высоты и ширины
2) view.setLayoutParams(new LinearLayout.LayoutParams(200, 120));

Так почему он работает на устройствах до нуга без используя эти 2 варианта?

+0

Где лет u используя этот код? Вы уверены, что макет уже нарисован? – GVillani82

+0

@ GVillani82 Он находится внутри 'onGlobatLayout()', поэтому он будет вызываться после создания представления. Я использовал 'addOnGlobalLayoutListener()' –

ответ

4

Попробуйте позвонить после установки width и height:

view.requestLayout() 
+0

Обновлен ли он в нуге? потому что без вызова 'requestLayout()' также он работает с устройствами pre nougat –

+0

Я не уверен насчет нуги, просто подумал об изменении параметров. – kenzo

+0

Спасибо, оба ответа работают –

7

попробовать это

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

или это

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

надеюсь, что это помогает вам

+0

Спасибо, оба ответа работают –

+0

Благодаря вам @Ravi Rupareliya за голос ... и добро пожаловать. –