提问人:Vadim 提问时间:7/31/2009 最后编辑:Has AlTaiarVadim 更新时间:2/19/2014 访问量:35679
Android,添加没有 XML 布局的新视图
Android, add new view without XML Layout
问:
我需要有经验的人的一点帮助。我希望这很容易。
我只想在主程序的视图上方显示新视图(在没有视图的情况下创建它)。
这是为了集成 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. 我在 中做了,但我也在其他地方尝试过。Activity
onCreate(Bundle)
答:
6赞
lilbyrdie
7/31/2009
#1
你实际上并没有告诉系统任何事情或在哪里绘制它。您需要查看有关您的活动的文档。如果您尝试让它在当前屏幕上绘制,请查看 (和 ) 的文档。draw
setContentView(view)
Dialog
setContentView
当我以编程方式创建任意视图以在现有视图中绘制时,我通常会在我的 中添加一个标签,然后在代码调用中,然后我可以使用该视图将 to()。layout
FrameLayout
layout XML
findViewById()
FrameLayout
view
addView()
我希望这对一些人有所帮助,而无需为您编写代码。
评论
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)
上一个:Android中的手势是什么
评论