Java 将自定义视图组添加到RelativeView
我试图通过ForLoop将几个自定义视图组动态添加到现有RelativeLayout中 当我添加它们时,不会显示任何内容。可能是因为视图组在添加之前尚未完成加载 怎么解决这个问题 谢谢, GameActivity.java:Java 将自定义视图组添加到RelativeView,java,android,oop,Java,Android,Oop,我试图通过ForLoop将几个自定义视图组动态添加到现有RelativeLayout中 当我添加它们时,不会显示任何内容。可能是因为视图组在添加之前尚未完成加载 怎么解决这个问题 谢谢, GameActivity.java: hScrollItems = (RelativeLayout) findViewById(R.id.hScrollItems); for (int i = 0; i < 5; i++){ int w = getResources().getI
hScrollItems = (RelativeLayout) findViewById(R.id.hScrollItems);
for (int i = 0; i < 5; i++){
int w = getResources().getInteger(R.integer.GridItemWidth);
int h = getResources().getInteger(R.integer.GridItemWidth);
GridItem gi = new GridItem(getBaseContext(), w, h, GridType.EMPTY);
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
params.setMargins(w * i, 0, 0, 0);
hScrollItems.addView(gi, params);
}
因为它是从活动
类调用的,所以您应该只使用this
,因为活动
扩展了上下文
GridItem gi = new GridItem(this, w, h, GridType.EMPTY);
另外,我看不到您在哪里为孩子们设置任何ID或对齐信息。RelativeLayout
中的视图需要设置它们的ID,并引用某些内容,以便它知道将它们放在何处
在那之后,试着在父节点上调用requestLayout()
。好的,我修复了它
首先,我必须将GridItem
更改为RelativeLayout
,而不是ViewGroup
其次,我必须通过
img.bringToFront()
将GridItem
中的ImageView
放到前面,我尝试过更改它,但没有结果,仍然没有显示任何内容。我尝试过为每个GridItem设置ID并添加hscrollitem.requestLayout(),但仍然没有显示任何内容…:(当我尝试以与上面相同的方式添加常规ImageView时,它起作用了,我看到了一个图形显示。但是添加我自己的GridItem类(我将ImageView放在自己的GridItem中)却没有显示。任何人都请帮助。好的,我将GridItem
类扩展为RelativeLayout
,而不是ViewGroup
,现在我得到了gra。)关于这个.setBackgroundColor(0xFFFFFF33);
的图形反馈,但我看不到图像视图
。对于这样简单的东西,线性布局
可能会更有效。如果你只需要一些东西来包装视图,相对性布局
会带来太多负担(必须设置ID和管理子/父对齐)。您可能还希望显式设置ImageView
的参数。
GridItem gi = new GridItem(this, w, h, GridType.EMPTY);