Я должен сделать это программно. Итак, терпите меня.
У меня есть текст и две кнопки, которые я установил для выравнивания друг под другом. Поэтому я создал новый экземпляр RelativeLayout.LayoutParams для каждого и добавил правило, чтобы установить его ниже друг друга. Это работает, и я доволен этим.
Мой вопрос: почему я должен создать новый экземпляр, чтобы макет отображал их таким образом? Есть ли способ уменьшить следующий код, чтобы он не был таким повторяющимся (кроме написания моего собственного частного метода, чтобы высушить его. возможно упускать из виду в Android SDK)? Нужно ли продолжать создавать новый экземпляр RelativeLayout.LayoutParams для каждого элемента?
layout = new RelativeLayout(this);
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
text = new TextView(this);
text.setId(1);
text.setText("This is text");
layout.addView(text);
myButton1 = new Button(this);
myButton1.setId(2)
myButton1.setOnClickListener(this);
RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
buttonParams.addRule(RelativeLayout.BELOW, text.getId());
layout.addView(myButton1, buttonParams);
myButton2 = new Button(this);
myButton2.setId(3)
myButton2.setOnClickListener(this);
buttonParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
buttonParams.addRule(RelativeLayout.BELOW, myButton1.getId());
layout.addView(myButton2, buttonParams);