Возможно ли при создании RelativeLayout во время выполнения установить программный эквивалент android:layout_below
?
203
Возможно ли при создании RelativeLayout во время выполнения установить программный эквивалент android:layout_below
?
Да:
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);
Во-первых, код создает новые параметры макета, указав высоту и ширину. addRule
Метод добавляет эквивалент XML правильно android:layout_below
. Тогда вы просто вызываете View#setLayoutParams
вид, который хотите получить эти параметры.
В качестве альтернативы вы можете использовать представления текущих параметров макета и изменить их:
источник
LayoutParams
а не создавать новые. На самом деле, это должно быть принято как правильный ответ.Хотя ответ @jackofallcode правильный, его можно записать в одну строку:
источник
LayoutParams
чтобы установить ихsetLayoutParams
Версия Kotlin с инфиксной функцией
Тогда вы можете написать:
Или вы можете вызвать его как обычную функцию:
источник