Yanıtlar:
Evet:
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);
İlk olarak, kod yükseklik ve genişlik belirterek yeni bir düzen parametreleri oluşturur. addRule
Yöntem düzgün xml eşdeğer ekler android:layout_below
. Sonra sadece View#setLayoutParams
bu paramlara sahip olmak istediğiniz görünümü çağırırsınız .
Alternatif olarak, görünümlerin mevcut düzen parametrelerini kullanabilir ve bunları değiştirebilirsiniz:
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) viewToLayout.getLayoutParams();
params.addRule(RelativeLayout.BELOW, R.id.below_id);
LayoutParams
yenilerini yaratmak yerine var olanlarla çalışmalıyız. Aslında, bu doğru cevap olarak kabul edilmelidir.
@Jackofallcode yanıtı doğru olsa da, tek bir satırda yazılabilir:
((RelativeLayout.LayoutParams) viewToLayout.getLayoutParams()).addRule(RelativeLayout.BELOW, R.id.below_id);
LayoutParams
onları ayarlamak için bir referansa ihtiyaç duyduğunuzda düzeni değiştirmenize izin vermezsetLayoutParams