É possível ao criar um RelativeLayout em tempo de execução definir o equivalente de forma android:layout_below
programática?
203
É possível ao criar um RelativeLayout em tempo de execução definir o equivalente de forma android:layout_below
programática?
Sim:
RelativeLayout.LayoutParams params= new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, R.id.below_id);
viewToLayout.setLayoutParams(params);
Primeiro, o código cria um novo parâmetro de layout, especificando a altura e a largura. O addRule
método adiciona o equivalente ao xml corretamente android:layout_below
. Depois, basta acessar View#setLayoutParams
a visualização em que deseja obter esses parâmetros.
Como alternativa, você pode usar os parâmetros de layout atuais das visualizações e modificá-los:
fonte
LayoutParams
vez de criar novos. De fato, isso deve ser aceito como a resposta correta.Enquanto a resposta @jackofallcode estiver correta, ela pode ser escrita em uma linha:
fonte
LayoutParams
defini-las comsetLayoutParams
Versão Kotlin com função infix
Então você pode escrever:
Ou você pode chamá-lo como uma função normal:
fonte