0

色の異なる 4 つの相対レイアウトを動的に追加したいと考えています。それを追加しようとすると、コンテナには4つの子ビューが含まれています。ただし、3 つのレイアウトのみが表示されます。最初のレイアウトを見えるようにする方法。

私のコード

int[] colors={Color.RED,Color.BLACK,Color.BLUE,Color.YELLOW};
        for(int i=0;i<4;i++){
            RelativeLayout relativeLayout=new RelativeLayout(MainActivity.this);
            relativeLayout.setId(i);
            RelativeLayout.LayoutParams layoutParams=new RelativeLayout.LayoutParams(2400,100);                 
            if(i>0){
            layoutParams.addRule(RelativeLayout.BELOW,audioContainer.getChildAt(i-1).getId());
            }
            relativeLayout.setLayoutParams(layoutParams);   
            relativeLayout.setBackgroundColor(colors[i]);
            audioContainer.addView(relativeLayout);         

        }
4

1 に答える 1

0

ID は正の数でなければならないため、機能しません。単純に 1 を追加できます:

relativeLayout.setId(i + 1);

通常、コンテナーが垂直方向の LinearLayout である場合、必要なことを行うのははるかに簡単です。ビューを追加するだけで、レイアウト ルールや ID を指定する必要はありません。

于 2012-11-17T15:17:56.070 に答える