Android,添加没有 XML 布局的新视图

Android, add new view without XML Layout

提问人:Vadim 提问时间:7/31/2009 最后编辑:Has AlTaiarVadim 更新时间:2/19/2014 访问量:35679

问:

我需要有经验的人的一点帮助。我希望这很容易。 我只想在主程序的视图上方显示新视图(在没有视图的情况下创建它)。 这是为了集成 AdMob.com 广告块:XML layouts

我写了这样的代码:

AdView ad = new AdView(this); 
ad.layout(10, 10, 100, 100); 
ad.setVisibility(View.VISIBLE); 
ad.bringToFront(); 
ad.requestFocus(); 
ad.invalidate();

如您所见 - 没有任何帮助,没有可见
的窗口 我做错了什么? 谢谢!

P.S. 我在 中做了,但我也在其他地方尝试过。ActivityonCreate(Bundle)

Java Android 视图 控件

评论


答:

6赞 lilbyrdie 7/31/2009 #1

你实际上并没有告诉系统任何事情或在哪里绘制它。您需要查看有关您的活动的文档。如果您尝试让它在当前屏幕上绘制,请查看 (和 ) 的文档。drawsetContentView(view)DialogsetContentView

当我以编程方式创建任意视图以在现有视图中绘制时,我通常会在我的 中添加一个标签,然后在代码调用中,然后我可以使用该视图将 to()。layoutFrameLayoutlayout XMLfindViewById()FrameLayoutviewaddView()

我希望这对一些人有所帮助,而无需为您编写代码。

评论

0赞 Vadim 8/1/2009
感谢您的回复。我已经解决了使用XML并使用RelativeLayout或AbsoluteLayout重制所有应用程序的问题。
0赞 Namratha 11/11/2011
@lilbyrdie:我使用与您相同的方法,但是当我尝试将以编程方式构建的视图添加到以XML声明的框架布局时,应用程序强制关闭。因此,当我这样做时,Frame Layout myFrameView.addView(viewBuiltProgrammatically)失败了。你认为这是为什么?
0赞 lilbyrdie 11/21/2011
@Namratha:您需要检查错误输出,以查看异常文本的内容。没有任何信息可以继续,我猜您可能错过了某个设置或设置了不允许的内容。
0赞 Zennichimaro 10/9/2012
我有可怕的 IllegalStateException:java.lang.IllegalStateException:指定的子项已经有父级。您必须先在孩子的父级上调用 removeView()。我试图调用((ViewGroup)child.getParent()).removeView(child));但它不起作用。在一种情况下,child.getParent() 返回 null,在另一种情况下,removeView 似乎根本没有效果,(之后调用 addView 仍然会导致 IllegalStateException)