为什么我的视图不可见?

问题描述:

我想在我的GLSurfaceView上创建另一个视图,我已经设法做到这一点,但由于某种原因,这一次没有任何可见的。我做这一切的代码,但下面是应该如何使用XML:为什么我的视图不可见?

setContentView(R.layout.main); 
adLinearLayout = (LinearLayout)findViewById(R.id.AdLinearLayout); 

//If ad is found on server...Do this (view is passed into the method) 
LayoutParams layout = new LayoutParams(adLinearLayout.getMeasuredWidth(), (adLinearLayout.getMeasuredWidth()*10)/64); 
adView.setLayoutParams(layout); 
adLinearLayout.removeAllViews(); 
adLinearLayout.addView(adView); 

而且我的这种解释是:

glView = new GLSurfaceView(this); 
glView.setRenderer(this); 
setContentView(glView); 
adLinearLayout = new LinearLayout(this); 
adLinearLayout.setGravity(Gravity.CENTER | Gravity.BOTTOM); 
this.addContentView(adLinearLayout, new LayoutParams(480, 150)); 

//If ad is found on server...Do This (view is passed into the method) 
LayoutParams layout = new LayoutParams(adLinearLayout.getMeasuredWidth(), (adLinearLayout.getMeasuredWidth()*10)/64); 
view.setLayoutParams(layout); 
adLinearLayout.removeAllViews(); 
adLinearLayout.addView(view, new LayoutParams(LayoutParams.WRAP_CONTENT ,LayoutParams.WRAP_CONTENT)); 

这绝不会显示在屏幕上的视图,虽然,有没有有什么缺失?

+0

您是否得到了解决方案? – sahu

您需要使用framelayout将2个视图堆叠在一起。

我不知道你如何得到与之前的linearlayout重叠。但根据定义,LinearLayout用于以水平或垂直顺序声明子视图。

关于框架布局,这是从Android文档

子视图在一个组中获得,在顶部最近添加的孩子 。 FrameLayout的大小是其最大子项 (加上填充)的大小,可见与否(如果FrameLayout的父级允许)。

您也可以实现与RelativeLayout的某些重叠,但FrameLayout是正确的方法。

+0

虽然之前我已经在另一个顶部使用了linearlayouts,但试图改变它,但它仍然不起作用 – Chris

+0

我更新我的答案 – blessenm

+0

我想实现TapJoy的SDK,并且他们也能够使用LinearLayouts。在我之前的项目中,我在GLView的顶部添加了LinearLayout,但并非如此,我将多个布局添加到LinearLayout – Chris