【问题标题】:Mix of expandable and normal listViews in androidandroid中可扩展和普通listViews的混合
【发布时间】:2011-01-07 10:21:44
【问题描述】:

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

【问题讨论】:

    标签: android listview android-2.2-froyo


    【解决方案1】:

    使用 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
    
        }
    }
    

    【讨论】:

    • 如何处理转换视图,HeterogeneousExpandableList 直到 API 级别 8 才可用
    猜你喜欢
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多