实际上它不是ListView而是ExpandableListView但它并不重要。通常我会这样做:
<ScrollView >
<LinearLayout>
<ExpandableListView ... />
<TextView ... />
</LinearLayout>
</ScrollView>
..但我已经读过在ScrollView中使用ListView很费劲。我尝试通过修改ExpandListAdapter(getChildView())来解决这个问题:
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View view, ViewGroup parent) {
if(isLastChild){
LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.extra_info_bottom, null);
}
else{
//get normal item view
}
return view;
}
但这样我只能将孩子附加到群组。如何将LinearLayout附加到任何组外的底部?
答案 0 :(得分:3)
只需添加以下代码即可在最后一个listview块中添加线性布局。
View footerView = ((LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.listfooter, null, false);
itemlist.addFooterView(footerView);
其中listfooter是xml文件,您可以在其中定义布局控件。
答案 1 :(得分:1)
你有什么理由想要在滚动条中包含listview吗?对你的布局来说没有意义做这样的事情:
<LinearLayout>
<ExpandableListView ... />
<ScrollView >
<LinearLayout>
<TextView ... />
</LinearLayout>
</ScrollView>
</LinearLayout>
使用此解决方案,您可以使用可扩展列表和Scrollview上的权重来定义要用于列表的屏幕数量以及底部线性布局的数量。
如果您希望线性布局显示在列表的最底部,我建议您使用页脚而不是getView。
无论如何,为了帮助解决你遇到的确切问题,我需要查看你想要膨胀的xml定义。
希望它有所帮助!
答案 2 :(得分:0)
尝试找出导致此错误的对象,并使用myObject.getClass().getName()
查找它的真实className。所以你可以看到你真正膨胀的对象,也许可以解决问题。