0

난 모든 레이아웃은 다음과 같은 버튼으로 ViewFlipper 여러 관점을 가질 후에 업데이트 레이아웃을 다음과 같은 방법을 chaning : 로이드의 LayoutParams는 전용 장치의 방향 변경 내 요요

params = (LayoutParams) icon.getLayoutParams(); 

params.width = iconSize; 
params.height = iconSize; 
params.topMargin = topMargin; 

icon.setLayoutParams(params); 

그러나 ViewFlipper의 첫 번째보기에의 LayoutParams 전용 "작업". 다른 버튼은 장치 방향을 변경할 때까지 레이아웃을 업데이트하지 않습니다. 그러나 오리엔테이션을 변경할 때 LayoutParams를 편집하고 설정하는 방법은 결코 호출되지 않습니다! 대신 "이전"매개 변수가 갑자기 표시됩니다.

자녀의 CustomViews 및 LayoutParams에는 특별한 것이 있습니까? 당신은 예를있는 LinearLayout are.For PARAMS 정확히 어떤 종류를 지정할 수

//first iconSize is width, second is height. 
LayoutParams params = new LayoutParams(iconSize, iconSize); 
params.setMargins(left, top, right, bottom); //Set whatever you need here and zero to where you need no margins. 

icon.setLayoutParams(params); 

이 난 항상 레이아웃의 PARAMS programmatically.Also 설정 방법은 다음과 같습니다

+0

레이아웃을 변경하고있는 기능은 무엇입니까? –

+0

onLayout 내부. 그러나 나는 또한 onSizeChanged와 onMeasure를 시도했다. 장치를 회전 할 때까지 아무 일도 일어나지 않습니다. – Servus7

답변

1
params = (LayoutParams) icon.getLayoutParams(); 

params.width = iconSize; 
params.height = iconSize; 
params.topMargin = topMargin; 

icon.setLayoutParams(params); 
//Old way - your way. 

시도이 같은 폭과 높이를 설정합니다 .LayoutParams.Or RelativeLayout.LayoutParams, 또는 레이아웃에 관계없이 사용할 수 있습니다.

자세한 정보가 필요하면 의견을 남기십시오.

+0

그러나 항상 새로운 매개 변수를 만들지 말고 기존 매개 변수를 사용합니다. – Servus7

+0

글쎄, 사실상 기존의 매개 변수에 적용 할 일련의 규칙을 만들면 새로운 매개 변수를 만들지 않습니다. 새 규칙을 만듭니다. – Vlad