Вы можете добавить представление в любую ViewGroup, вызвав метод ViewGroup.addView (View) .
Как бы то ни было, это своего рода неопределенный способ добавления вида. Что предпочтительнее, так это то, что вы сначала создаете LayoutParams для данного макета (с учетом представления). Это позволит вам более тщательно контролировать представление и его взаимосвязь с родительским представлением.
Вот пример, чтобы связать все вместе:
class MyActivity extends Activity {
@Override public void onCreate(Bundle icicle) {
super.onCreate(icicle)
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
// Create 5 view to take up a small amount of space.
View tmp = null;
for (int i = 0; i < 5; i++) {
tmp = new View(this);
ll.addView(tmpnew LinearLayout.LayoutParams(
50, // Width
50); // Height
// Either or both the width and height may be ViewGroup.
// (WRAP_CONTENT || FILL_PARENT || MATCH_PARENT)
}
setContentView(ll);
}
}
Так вы бы динамически добавили представление к LinearLayout. Однако из-за структуры и дизайна LinearLayout позиционирование на самом деле не так уж и много. Думайте о LinearLayout как о массиве, полном представлений в одном направлении, единственное, что вы можете сделать, это изменить их местоположение в массиве. Если вы хотите точный контроль над видом, я рекомендую RelativeLayout.