Android: поместите два элемента в центр relativeLayout программно

Я добавляю два элемента в представление для кода. ImageView и спиннинговое колесо. Два элемента показаны, но в одном и том же месте. И я хочу поставить ImageView над другим элементом, в центре экрана.

Код, который добавляет представления:

RelativeLayout container= (RelativeLayout)findViewById(R.id.container); RelativeLayout.LayoutParams position = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); position.addRule(RelativeLayout.CENTER_IN_PARENT); imgCenter.setLayoutParams(position); container.addView(imgCenter); RelativeLayout.LayoutParams position2 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); position2.addRule(RelativeLayout.CENTER_IN_PARENT); position2.addRule(RelativeLayout.BELOW,imgCenter.getId()); spinner.setLayoutParams(position2); container.addView(spinner);

Xml relativelayout:

2 ответа

Благодаря @HareshChhelana я нашел решение. Я изменяю xml следующим образом:

И код:

LinearLayout container= (LinearLayout)findViewById(R.id.container); ProgressBar spinner = new ProgressBar(this,null,android.R.attr.progressBarStyleLarge); container.addView(imgCenter); container.addView(spinner);


Удалить центр в родительском блоке во втором дочернем элементе

RelativeLayout container= (RelativeLayout)findViewById(R.id.container);
RelativeLayout.LayoutParams position = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
position.addRule(RelativeLayout.CENTER_IN_PARENT);
imgCenter.setLayoutParams(position);
container.addView(imgCenter);
RelativeLayout.LayoutParams position2 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
position2.addRule(RelativeLayout.BELOW,imgCenter.getId());
spinner.setLayoutParams(position2);
container.addView(spinner);

licensed under cc by-sa 3.0 with attribution.