3

こんにちは、インフレータを使用してプログラムでレイアウトを追加しようとしています (単純な 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);
4

1 に答える 1