2013-04-23 2 views
-1

현재 응용 프로그램 내에서 동적으로 이동, 크기 조정 및 숨기기를하는 RelativeLayout이 있습니다. 한 번 이동 한 후에 레이아웃은 나중에 이상한 위치로 재배치됩니다.LayoutParams 이상한 위치에 뷰 배치

다음은 현재 사용중인 레이아웃입니다. 여기

<RelativeLayout ...> 
    <RelativeLayout android:id="@+id/moveable_layout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:clickable="true" 
     android:visibility="gone" /> 
</RelativeLayout> 

그리고

내가

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(newWidth, newHeight); 
m_movingFrame.setEnabled(true); 
m_movingFrame.setLayoutParams(layoutParams); 
m_movingFrame.setX(newX); 
m_movingFrame.setY(newY); 
m_movingFrame.requestLayout(); 
m_movingFrame.bringToFront(); 
m_movingFrame.setVisibility(View.VISIBLE); 

을 재배치하는 데 사용하는 코드입니다 그리고 여기 레이아웃

m_movingFrame.setEnabled(false); 
m_movingFrame.setVisibility(View.GONE); 

내가 그것을 재배치 처음 숨기기 위해 사용되는 코드입니다, 올바른 위치로 이동하지만 이후의 모든 재배치가 잘못된 위치로 이동합니다. 누구나 왜 그렇게 이상하게 행동하는지 말해 줄 수 있습니까?

미리 감사드립니다.

+0

이미이 질문을하셨습니까? – Luksprog

+0

네,하지만 응답이 없으므로 좀 더 구체적인 제목으로 다시 만들었습니다. – loadedion

+0

그럴 필요는 없으며 원래 질문을 수정하고 개선하십시오. – Luksprog

답변

0

먼저 기존 레이아웃의 레이아웃을 가져 와서 수정하십시오.

RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) m_movingFrame.getLayoutParams(); 

... 

m_movingFrame.setLayoutParams(layoutParams); 
+0

감사합니다. 부분적으로 작동하는 것 같습니다. 그러나 규칙을 추가 할 때보기의 부모가 변경된 것처럼 보입니다. 예를 들어,'layoutParams.addRule (RelativeLayout.CENTER_IN_PARENT);를 설정하면 처음으로 뷰를 중앙에 배치하지만, 어딘가에 옮기고 다시 가운데에 배치하면 다른 곳으로 옮겨집니다 – loadedion