Как добавить представление в начало линейного макета в коде?

Мне нужно добавить admob adview к линейному макету в коде, но мне нужно вставить его вверху макета, а не снизу.

Есть ли способ сделать это?

Ответы

Ответ 1

Использование:

public void addView (Просмотреть дочерний, индекс int) Поскольку: Уровень API 1

Добавляет дочернее представление. Если параметры макета уже не установлены на child, параметры по умолчанию для этой группы ViewGroup устанавливаются на дочернем элементе. Параметры child дочерний вид, чтобы добавить индекс, положение, при котором для добавления ребенка См. также

Итак,

yourLayout.addView(yourView, 0);

http://developer.android.com/reference/android/view/ViewGroup.html#addView(android.view.View,%20int)

Ответ 2

Я тоже пытался это сделать, но используя только LinearLayout, он всегда добавлял представление внизу, вне зависимости от того, какой index я передал addView.

Я завернул LinearLayout в RelativeLayout, тогда вы это сделаете:

relativeLayout.addView(adView);
adView.setId(12345678);
RelativeLayout.LayoutParams llParams = (RelativeLayout.LayoutParams)linearLayout.getLayoutParams();
llParams.addRule(RelativeLayout.BELOW, adView.getId());

Это работает для меня.