为什么我的视图不可见?
问题描述:
我想在我的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));
这绝不会显示在屏幕上的视图,虽然,有没有有什么缺失?
答
您需要使用framelayout将2个视图堆叠在一起。
我不知道你如何得到与之前的linearlayout重叠。但根据定义,LinearLayout用于以水平或垂直顺序声明子视图。
关于框架布局,这是从Android文档
子视图在一个组中获得,在顶部最近添加的孩子 。 FrameLayout的大小是其最大子项 (加上填充)的大小,可见与否(如果FrameLayout的父级允许)。
您也可以实现与RelativeLayout的某些重叠,但FrameLayout是正确的方法。
您是否得到了解决方案? – sahu