2016-12-30 2 views
5

작동하지 선폭이 동적으로view.getLayoutParams는(). 내가보기의 높이와 너비를 설정하는 코드를 작성했습니다 누가

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

그것은 누가 장치 아래에서 완벽하게 작동하지만, 누가 그것을 작동하지 않습니다. 너가 업데이트 한 후에 어떤 변화가 있니?

업데이트 :이

1을 작동하지만

) 내가 높이와 폭
2) view.setLayoutParams(new LinearLayout.LayoutParams(200, 120));

그래서없이 사전 누가 장치에서 작업을하는 이유를 설정 한 후 view.requestLayout()을 사용하고 있습니다 이 두 가지 옵션을 사용합니까?

+0

어디 당신을 도움이되기를 바랍니다 시도 요 그 코드를 사용하고 있습니까? 레이아웃이 이미 그려져 있습니까? – GVillani82

+0

@ GVillani82'onGlobatLayout()'내부에 있으므로 뷰가 생성 된 후에 호출됩니다. 'addOnGlobalLayoutListener()'를 사용했습니다 –

답변

4

봅니다 widthheight을 설정 한 후 호출 :

view.requestLayout() 
+0

누가 (nougat)로 업데이트 되었습니까? 'requestLayout()'도 호출하지 않고 pre nougat 장치에서 작업하고 있기 때문에 –

+0

nougat에 대한 확신이 없기 때문에 params를 변경하는 것에 대해 생각했습니다. – 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님께 감사 드리며 환영합니다. –

관련 문제