こんにちは、インフレータを使用してプログラムでレイアウトを追加しようとしています (単純な TextView です)。膨張したビューの親は、ScrollView にある RelativeLayout です。私の問題は、params.addRule と view.setLayoutParams() を使用してヘッダー (RelativeLayout にある) の下に新しいビューを配置しようとしていることですが、クラスキャストの例外が発生しています:11-12 13:06:57.360: E/AndroidRuntime(10965): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams
の親にもかかわらずビューは明らかに RelativeLayout です。何かご意見は?
RelativeLayoutがスクロールビューにネストされているためだと思いますが、追加しているビューの直接の親がRelativeLayoutであるため、なぜこれを行うのかわかりません。
_innerLayout = (RelativeLayout) findViewById(R.id.innerRelativeLayout);
LayoutInflater inflater = (LayoutInflater)this.getLayoutInflater();
View view = inflater.inflate(R.layout.comments, _innerLayout);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, R.id.commentsHeader);
view.setLayoutParams(params);