Установите гравитацию для LinearLayout программно
Я следовал инструкции по созданию нового плагина AdMob для Unity. Объявления показываются корректно, но у меня проблема с нижней позицией. Они появляются в верхней части экрана. Я установил гравитацию внизу (для FrameLayout), но баннерная реклама снова появляется в верхней части экрана.
У меня нет.xml файла с тегами LinearLayout/FrameLayout.
Вот весь код:
public class playads {
private String adUnitID = "ca-app-pub-9578188175087140/5483276313";
private Activity activity; //Store the android main activity
private AdView adView; //The AdView we will display to the user
private LinearLayout layout; //The layout the AdView will sit on
public playads () {
activity = UnityPlayer.currentActivity;
activity.runOnUiThread(new Runnable() {
public void run(){
adView = new AdView(activity);
adView.setAdUnitId(adUnitID);
adView.setAdSize(AdSize.BANNER);
AdRequest request = new AdRequest.Builder().build();
adView.setAdListener(new AdListener() {
public void onAdLoaded() {
if(layout == null)
Log.d("null", "null");
{
activity.runOnUiThread(new Runnable() {
public void run(){
layout = new LinearLayout(activity);
layout.addView(adView);
//FrameLayout.LayoutParams p = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
//p.gravity=Gravity.BOTTOM;
activity.addContentView(layout, new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
((FrameLayout.LayoutParams)layout.getLayoutParams()).gravity = Gravity.BOTTOM;
}
});
}
}
}
);
adView.loadAd(request);
}
});
}
}
Я действительно не знаю, в чем проблема. Я потратил весь день, чтобы напечатать это, но без какого-либо решения:(
2 ответа
Помни что gravity
устанавливает расположение дочерних элементов представления, а layout_gravity
устанавливает расположение представления в пределах его родителя. Так что в вашем случае вы хотите установить серьезность LinearLayout, что можно сделать с помощью методов-членов. Вы также должны установить ориентацию.
Ваш метод run() должен выглядеть примерно так:
public void run(){
layout = new LinearLayout(activity);
layout.setGravity(Gravity.BOTTOM);
layout.setOrientation(LinearLayout.VERTICAL);
layout.addView(adView);
LinearLayout.LayoutParams lllp = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
activity.addContentView(layout, lllp);
}