Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将自定义视图组添加到RelativeView_Java_Android_Oop - Fatal编程技术网

Java 将自定义视图组添加到RelativeView

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

我试图通过ForLoop将几个自定义视图组动态添加到现有RelativeLayout中

当我添加它们时,不会显示任何内容。可能是因为视图组在添加之前尚未完成加载

怎么解决这个问题

谢谢,

GameActivity.java:

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);