在ListView下添加LinearLayout

时间:2012-06-07 13:08:51

标签: android listview

实际上它不是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附加到任何组外的底部?

3 个答案:

答案 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。所以你可以看到你真正膨胀的对象,也许可以解决问题。