0
adView
是AdMob的視圖,我將它添加到這樣的另一架圖:Android的 - 對齊中心的RelativeLayout中的FrameLayout
adView = new AdView(this);
RelativeLayout relativeLayout = new RelativeLayout(this);
mFrameLayout.addView(relativeLayout);
RelativeLayout.LayoutParams adViewParams = new RelativeLayout.LayoutParams(
AdView.LayoutParams.WRAP_CONTENT,
AdView.LayoutParams.WRAP_CONTENT);
//important I use this to make it appear on the bottom
adViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
relativeLayout.addView(adView, adViewParams);
它出現在框架佈局的底部,因此在底部屏幕(框架佈局是我的屏幕)。但是不在中心,它是左對齊的。如何在FrameLayout
的中心對齊RelativeLayout
。
EIDT:這裏是FrameLayout裏的情況下,你需要它:
// FrameLayout
ViewGroup.LayoutParams framelayout_params =
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
mFrameLayout = new FrameLayout(this);
mFrameLayout.setLayoutParams(framelayout_params);
請考慮使用'RelativeLayout.CENTER_HORIZONTAL'來代替,因爲'RelativeLayout.CENTER_IN_PARENT'也會嘗試對齊**垂直**和水平**,與RelativeLayout.ALIGN_PARENT_BOTTOM相矛盾。 –
謝謝,根據你的評論@AndrewT改變。你能告訴第二個參數的含義是'RelativeLayout.TRUE'嗎? – Narek
經過研究,我去讀了'RelativeLayout'的源代碼。顯然,允許在「boolean」中使用'addRule()'是個訣竅。 addRule()的第二個參數接受'int',它應該是另一個'View'的ID(在使用XML時進行比較)。當規則與另一個「視圖」(如本例中)無關時,它使用0(「false」)和-1(「RelativeLayout.TRUE」),因爲兩者都是'View'的無效ID。 [鏈接到源代碼](https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/RelativeLayout.java) –