Android 在下面的RelativeLayout.com中添加两个视图

Android 在下面的RelativeLayout.com中添加两个视图,android,android-layout,listview,android-relativelayout,Android,Android Layout,Listview,Android Relativelayout,我在所有高度上都有相对视野,它有两个视野: 1) “mainItem”是用于固定高度的视图 2) “listView”从橡胶(或非固定)高度 我希望“mainItem”保持在顶部,“listView”位于“mainView”的下方,并且它在所有剩余高度伸展RelativeLayout 我这样做: mainItem = new ItemList(getContext()); mainItem.setId(0); RelativeLayout.LayoutParams params = new Re

我在所有高度上都有相对视野,它有两个视野:

1) “mainItem”是用于固定高度的视图

2) “listView”从橡胶(或非固定)高度

我希望“mainItem”保持在顶部,“listView”位于“mainView”的下方,并且它在所有剩余高度伸展RelativeLayout

我这样做:

mainItem = new ItemList(getContext());
mainItem.setId(0);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
params.addRule(ALIGN_PARENT_TOP);
addView(mainItem, params);


listView = new ListView(getContext());
listView.setAdapter(adapter);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
params.addRule(BELOW, mainItem.getId());
addView(listView, params);
我得到的“listView”保持在顶部,并在所有宽度和高度上伸展。 “mainItem”也位于顶部,但位于“listView”下。(“mainView”不可见)


请告诉我,我做错了什么?

不要将id设置为0。换个号码看看行不行? 如果您查看setID()的文档,就会发现它说“标识符应该是正数”。零不是一个正数。

您正在主视图之前添加一个具有“高度匹配父视图”的视图,因此即使列表不占用整个空间,底部也不会有任何空间。尝试使用带权重的线性布局,或者如果您知道列表不会占据整个屏幕,您可以尝试在其高度上包装内容,但这不建议用于滚动视图。@zgc7009问题在于id=0。该问题的解决方案是更改示例1中的id。