Java Android-在FrameLayout中将相对位置居中对齐
Java Android-在FrameLayout中将相对位置居中对齐,java,android,Java,Android,adView是AdMob的视图,我将其添加到另一个帧视图中,如下所示: adView = new AdView(this); RelativeLayout relativeLayout = new RelativeLayout(this); mFrameLayout.addView(relativeLayout); RelativeLayout.LayoutParams adViewParams = new RelativeLayout.LayoutParams( AdView.La
adView
是AdMob的视图,我将其添加到另一个帧视图中,如下所示:
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
ViewGroup.LayoutParams framelayout_params =
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
mFrameLayout = new FrameLayout(this);
mFrameLayout.setLayoutParams(framelayout_params);
我做过这件事,但它奏效了:
adViewParams.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
请确认它是否正确。考虑改用
RelativeLayout.CENTER\u HORIZONTAL
,因为RelativeLayout.CENTER\u IN\u PARENT
也尝试垂直和水平对齐,与RelativeLayout.align\u PARENT\u BOTTOM
相矛盾。谢谢,根据您的评论@AndrewT进行更改。你能告诉我第二个参数的意思是RelativeLayout.TRUE
?在研究了一点之后,我去阅读了RelativeLayout
的源代码。显然,允许将addRule()
与“boolean”一起使用是一个技巧。addRule()
的第二个参数接受int
,它应该是另一个视图的ID(使用XML时比较)。当规则与另一个视图
(与本例类似)不相关时,它使用0(“false”)和-1(RelativeLayout.TRUE
),因为这两个ID在其他方面都是视图
的无效ID。非常感谢@AndrewT。