2017-01-19 3 views
0

버튼을 상단 모서리에서 하단 오른쪽 모서리 (한 레이아웃에서 다른 모서리로)로 이동하려는 경우 하나의 레이아웃, 즉 상대 레이아웃을 사용할 때 전환이 완벽하게 작동합니다. . 논리는 : 상단 선형 레이아웃을 클릭하면 버튼이 2 번째 (하단) 선형 레이아웃으로 이동해야합니다. 하지만 난이 오류에 직면하고있다 :클래스 캐스팅 예외, 한 레이아웃에서 다른 버튼으로 애니메이션 움직이는 데 문제가 있습니다

java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams 

내 자바 코드는 다음과 같습니다

private void MoveBTN() { 
//transition 
TransitionManager.beginDelayedTransition(myLayout); 
// View myBtn=findViewById(R.id.btn1); 
//moveing button 
RelativeLayout.LayoutParams LP=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT); 
LP.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM,RelativeLayout.TRUE); 
LP.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,RelativeLayout.TRUE); 
myButton1.setLayoutParams(LP); 
//resizing button 
ViewGroup.LayoutParams size=myButton1.getLayoutParams(); 
size.height=71; 
size.width=65; 
myButton1.setLayoutParams(size); 
} 

내 레이아웃은 my Layout

+0

입니다. 이는 viewItem을 한 뷰에서 다른 뷰로 이동할 수 없습니다. –

+0

동일한보기 내에서이 위치를 이동할 수 있으므로 한 레이아웃에서 다른 레이아웃으로 이동해야하는 경우 어떻게해야합니까? 다른 방법이 있나요 ??? –

+0

개의 뷰를 생성하고 표시하게 한 보이지 않는 다른 제가 이 LinearLayout.LayoutParams LP = 새로운 LinearLayout.LayoutParams ( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)를 시도 –

답변

1

귀하의 버튼이있는 LinearLayout 안에 그림에 나와있다. RealativeLyyout.Params를 캐스팅하면 예외가 발생합니다. 버튼이 아닌 레이아웃 매개 변수를 변경해보십시오. 레이아웃은

+0

필요한 때를 하지만 컴파일러가 규칙을 추가하는 옵션을 제공하지 않고 컴파일러에서 사용하는 선형 레이아웃 매개 변수를 컴파일러에서 어떻게 알 수 있습니까? 여기에는 두 개의 선형 레이아웃이 있기 때문입니다. –