2017-01-19 17 views
0

ボタンを上隅から右下に(レイアウトごとに)移動したい場合、レイアウトは1つのレイアウト、つまり相対レイアウト。 ロジックは:上の線形レイアウトをクリックすると、ボタンは2番目(下)の線形レイアウトに移動するはずです。しかし、私はこのエラーに直面しています:クラスキャスト例外、ボ​​タンをあるレイアウトから別のレイアウトにアニメーション化するのに問題があります

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

私のJavaコードは次のとおりです。

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

彼は1つのレイアウトから別のレイアウトに移動しなければならない場合はどうしますか?他の方法はありますか? –

+0

2つのビューを作成し –

答えて

1

あなたのボタンがのLinearLayout内にある画像に与えられています。 RealativeLyyout.Paramsをキャストすると例外がスローされます。ボタンではなくレイアウトのパラメータを変更してみてください。レイアウトは

+0

を必要なときに、私はこの LinearLayout.LayoutParams LPを試みた=新しいLinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT、LinearLayout.LayoutParams.WRAP_CONTENT)一方が可視と不可視他作ります。 今、コンパイラはルールを追加するオプションを与えていないし、コンパイラがどのような線形レイアウトのパラメータを使用しているかを知ることができますか?ここには2つの線形レイアウトがあるからです。 –

関連する問題