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. addRuleYöntem düzgün xml eşdeğer ekler android:layout_below. Sonra sadece View#setLayoutParamsbu 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);
LayoutParamsyenilerini 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);
LayoutParamsonları ayarlamak için bir referansa ihtiyaç duyduğunuzda düzeni değiştirmenize izin vermezsetLayoutParams