以编程方式设置LinearLayout的重力



我已经遵循了制作新的AdMob插件Unity的指令。广告显示正确,但我对底部位置有问题。它们出现在屏幕的顶部。我已经将重力设置为底部(对于framayout),但横幅广告再次显示在屏幕的顶部。

我没有任何。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);
        }
    });   
}
}
我真的不知道是什么问题。我花了一整天的时间去找,但是没有任何解决办法。

请记住,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);
    }

在LinearLayout中使用setGravity

最新更新