2017-01-28 5 views
0

У меня есть 1 главный макет, который является вертикальным LinearLayout, нажатием кнопки я хочу иметь возможность добавить горизонтальную компоновку с 2 текстами редактирования. То, что я здесь сделал, не работает, никаких ошибок, но ничего не происходит.Добавление макета с представлениями программно

public void addView(View v){ 
    LinearLayout mainLayout =(LinearLayout)findViewById(R.id.activity_main); 

    LinearLayout h = new LinearLayout(this); 

    h.setOrientation(LinearLayout.HORIZONTAL); 
    h.addView(new EditText(this)); 
    h.addView(new EditText(this)); 

    mainLayout.addView(h); 
} 

ответ

1

одна вещь, которую нужно учитывать при создании View программно является установка LayoutParams, например,

LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WrapContent); 
view.setLayoutParams(layoutParams); 

таким образом вы определяете размер представления внутри макета, это то, что вы, как правило, устанавливается с layout_width и layout_height атрибутов в макете

XML в вашем случае вы должны добавить LayoutParams для LinearLayout и по одному для каждого EditText

+0

Ох, как я забыл это! Спасибо! –

+0

добро пожаловать, пожалуйста, подумайте о том, чтобы помочь и принять, если это поможет. также, если у вас есть какие-либо сомнения, не стесняйтесь спрашивать – lelloman