其他分享
首页 > 其他分享> > Android中可扩展列表和普通列表视图的混合

Android中可扩展列表和普通列表视图的混合

作者:互联网

我正在尝试创建与通话记录活动(在Froyo中)类似的列表.在这里,来自同一个人的重复呼叫被分组到一个可扩展的列表项中,而其他人则是列表中的普通元素.如何创建这样的列表?可以用ExpandableListView类完成吗?

解决方法:

使用ExpandableListView应该相当容易.扩展BaseExpandableListAdapter可以控制组元素和扩展列表元素的显示方式以及在其上触发的事件应如何工作.这样,您可以组织此视图以显示单个元素的不可扩展组和多个元素的可扩展列表.使用这样的适配器,您可以提供ExpendableListView以使其正常工作

下面是其实现示例.请注意,此处未显示与问题无关的所有需要​​实现的方法.元素是一些虚构的类,实例可以自己告诉他们应该如何显示.

public class MyExpandableListAdapter extends BaseExpandableListAdapter {

    private final List<Element> elements;

    public MultiSelectExpandableListAdapter(Context c, List<Element> elements) {
        this.elements = elements;
    }

    public View getGroupView(final int group, final boolean expanded, final View convertView,
                             final ViewGroup parent) {
        if (elements.get(group).shouldBeDisplayedAsAGroup()) {
           // inflate and setup view that displays expandable view header
        } else {
           // inflate and setup view of element that should be displayed as single element
        }

    }

    public View getChildView(final int group, final int child, final boolean lastChild, final View convertView,
                             final ViewGroup parent) {

           // inflate and setup child view

    }
}

标签:listview,android-2-2-froyo,android
来源: https://codeday.me/bug/20191023/1914283.html