複数のレイアウトを相互に動的に追加しようとしています。そこで、次のコードを書きました。
for (int i = 1; i <= layoutCounter; i++) {
View neu = inflater.inflate(R.layout.vote, parent, false);
neu.setId(layoutID);
if (layoutID == 1) {
params = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, R.id.txtMultiline);
} else {
params = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, neu.getId());
}
neu.setLayoutParams(params);
parent.addView(neu);
layoutID++;
}
txtMultiline は、XML で定義された固定ビューです。LayoutID は整数で、1 から始まります。最初のレイアウトは、txtMultiline TextView の下に正しく追加されます。ただし、次のすべてのレイアウトは、親レイアウト (RelativeLayout) の上に追加されるだけです。理由がわかりません。else-route は正しく実行されています。しかし、動的に膨張したレイアウトに適用しようとすると、BELOW 定数は効果がないようです。私は何を間違っていますか?