Android ExpandbleView源码学习:ExpandableListView使用

Linux大全评论936 views阅读模式

首先需要在layout下的某个xml文件中申明ExpandableView节点

  1. <ExpandableListView Android:id="@+id/ExpandableListView_Section"  
  2.         android:layout_width="fill_parent" android:layout_height="wrap_content"  
  3.         android:clickable="false" android:divider="#FFCECFCE"  
  4.         android:dividerHeight="1.0dp" android:fadingEdge="vertical"  
  5.         android:background="#FFFFFFFF" android:childDivider="#FFCECFCE"  
  6.         android:cacheColorHint="#00000000">  
  7.     </ExpandableListView>  

然后在代码中取到该view

  1. expLV = (ExpandableListView) mLayout.findViewById(R.id.ExpandableListView_Section);  

然后设置他的adapter

  1. expLV.setAdapter(adapter);  

这样就可以了。

  1. /**扩展baseExpandableAdapter用于展示二级列表使用*/  
  2.     public class MyExpandableListAdapter extends BaseExpandableListAdapter{  
  3.         private LayoutInflater mInflater;  
  4.         private List<KnowledgeCatalogInfo> KnowledgeCatalogInfos;  
  5.           
  6.         public MyExpandableListAdapter(Context context , List<KnowledgeCatalogInfo> KnowledgeCatalogInfos){  
  7.             this.mInflater = LayoutInflater.from(context);  
  8.             this.KnowledgeCatalogInfos = KnowledgeCatalogInfos;  
  9.         }  
  10.           
  11.         public MyExpandableListAdapter(Context context){  
  12.             this.mInflater = LayoutInflater.from(context);  
  13.         }  
  14.           
  15.           
  16.         @Override  
  17.         public int getGroupCount() {  
  18.         }  
  19.   
  20.         @Override  
  21.         public int getChildrenCount(int groupPosition) {  
  22.         }  
  23.   
  24.         @Override  
  25.         public Object getGroup(int groupPosition) {  
  26.             return this.KnowledgeCatalogInfos.get(groupPosition);  
  27.         }  
  28.   
  29.         @Override  
  30.         public Object getChild(int groupPosition, int childPosition) {  
  31.             return null;  
  32.         }  
  33.   
  34.         @Override  
  35.         public long getGroupId(int groupPosition) {  
  36.             return groupPosition;  
  37.         }  
  38.   
  39.         @Override  
  40.         public long getChildId(int groupPosition, int childPosition) {            
  41.             return childPosition;  
  42.         }  
  43.   
  44.         @Override  
  45.         public boolean hasStableIds() {  
  46.             return true;  
  47.         }  
  48.   
  49.         @Override  
  50.         public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {  
  51.             return view;  
  52.         }  
  53.   
  54.         @Override  
  55.         public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {  
  56.             return view;  
  57.         }  
  58.   
  59.         @Override  
  60.         public boolean isChildSelectable(int groupPosition, int childPosition) {  
  61.             return true;  
  62.         }  
  63.         /** 
  64.          * 获得展示的VIEW 
  65.          * @return 
  66.         */   
  67.         public View getGenericView(){  
  68.             View view = this.mInflater.inflate(R.layout.practise_section_group_item_layout, null);  
  69.             return view;  
  70.         }  
  71.     }  

企鹅博客
  • 本文由 发表于 2019年9月8日 22:47:11
  • 转载请务必保留本文链接:https://www.qieseo.com/171253.html

发表评论