2

实际上它不是 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?

4

3 回答 3

3

只需添加以下代码即可在最后一个列表视图块中添加线性布局。

View footerView = ((LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.listfooter, null, false);
                itemlist.addFooterView(footerView);

其中 listfooter 是 xml 文件,您可以在其中定义布局控件。

于 2012-06-07T13:24:39.200 回答
1

有什么理由要让列表视图在滚动中吗?你的布局做这样的事情是没有意义的:

<LinearLayout>
    <ExpandableListView ... />
    <ScrollView >
      <LinearLayout>
         <TextView ... />   
      </LinearLayout>     
    </ScrollView>
</LinearLayout>

使用此解决方案,您可以在 Expandable List 和 Scrollview 上使用权重来定义您想要为 List 使用多少屏幕以及为底部的线性布局使用多少。

如果您希望您的线性布局出现在列表的最底部,我建议您使用页脚而不是 getView 的东西。

无论如何,为了帮助您解决您遇到的确切问题,我需要查看您要膨胀的内容的 xml 定义。

于 2012-06-07T13:27:31.057 回答
0

尝试找出导致此错误的对象并使用myObject.getClass().getName(). 所以你可以看到你真正膨胀的对象,也许可以解决问题。

于 2012-06-07T13:15:43.120 回答