Я пытаюсь создать метод, в котором каждый раз, когда я нажимаю кнопку, я хочу, чтобы на экране отображалось поле «Относительный макет» под тем, которое есть в данный момент, или создайте его вверху, если его там нет, и я хочу, чтобы он сохранялся создание их ниже от каждого нажатия кнопки. В настоящее время при использовании этого метода ничего не происходит при нажатии кнопки.
Вот код, который у меня есть до сих пор, и может кто-нибудь помочь мне понять, что я делаю неправильно, и что я могу сделать, чтобы решить эту проблему:
public void createNewLayout(){
int currentId = 10;
for(int i = 1; i <= numberOfLayouts; i++){
newLayoutContainer = new RelativeLayout(this);
newLayoutContainer.setId(currentId);
if(currentId == 10){
newLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, dpContainerHeight);
newLayoutParams.addRule(RelativeLayout.ALIGN_LEFT, containerLayout2.getId());
newLayoutParams.addRule(RelativeLayout.ALIGN_RIGHT, containerLayout2.getId());
newLayoutParams.addRule(RelativeLayout.BELOW, containerLayout2.getId());
newLayoutParams.setMargins(0, 0, 0, dpMargin);
newLayoutContainer.setBackgroundResource(R.color.display_panels);
}
else{
newLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, dpContainerHeight);
newLayoutParams.addRule(RelativeLayout.ALIGN_LEFT, newLayoutContainer.getId());
newLayoutParams.addRule(RelativeLayout.ALIGN_RIGHT, newLayoutContainer.getId());
newLayoutParams.addRule(RelativeLayout.BELOW, currentId-1);
newLayoutParams.setMargins(0, 0, 0, dpMargin);
newLayoutContainer.setBackgroundResource(R.color.display_panels);
}
newLayoutContainer.setLayoutParams(newLayoutParams);
layout.addView(newLayoutContainer);
currentId++;
}
}
LinearLayout
с вертикальной ориентацией в качестве макета родителя/держателя. Тогда простое добавление дочерних элементов обеспечит правильный макет без дополнительного кода. - person Ken Wolf   schedule 09.07.2013layout
правильно привязан к вашей деятельности? Вы инициализировали его через XML и т. д.? - person Ken Wolf   schedule 09.07.2013