LayoutParams гравитация не работает
У меня есть родительский LinearLayout с MATCH_PARENT для ширины и высоты. Я пытаюсь выяснить установку гравитации и layout_gravity с помощью кода Java.
LinearLayout l=new LinearLayout(this);
l.setGravity(Gravity.CENTER);
LinearLayout.LayoutParams ll=new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
l.setLayoutParams(ll);
l.setOrientation(LinearLayout.VERTICAL);
Теперь я добавляю к нему кнопку, используя следующий код:
LayoutParams llb=new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
llb.gravity=Gravity.RIGHT;
b.setLayoutParams(llb);
Теперь, если я добавлю эту кнопку в LinearLayout l и сделаю ее представлением содержимого
l.addView(b);
setContentView(l);
все работает правильно. Кнопка отображается в центре и с правой стороны.
Но если я вставлю эту кнопку в LinearLayout, а затем добавлю этот LinearLayout во внешний макет, как показано ниже
LinearLayout l2=new LinearLayout(this);
l2.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams ll2=new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
l2.setLayoutParams(ll2);
l2.addView(b);
// добавить это в основной макет. Кнопка имеет те же LayoutParams, что и выше.
l.addView(l2);
setContentView(l);
Кнопка всегда появляется слева, и это
llb.gravity=Gravity.RIGHT;
не похоже на работу.
Просьба обновить, почему это не работает.
Спасибо