介绍
这期内容当中小编将会给大家带来有关如何在Android应用中实现一个列表悬浮效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
具体方法如下:
包com.xiaos.view; 进口android.content.Context; 进口android.graphics.Canvas; 进口android.util.AttributeSet; 进口android.view.MotionEvent; 进口android.view.View; 进口android.view.ViewGroup; 进口android.widget.AbsListView; 进口android.widget.AbsListView.OnScrollListener; 进口android.widget.ExpandableListAdapter; 进口android.widget.ExpandableListView; 进口android.widget.ExpandableListView.OnGroupClickListener; 公共类PinnedHeaderExpandableListView ExpandableListView实现>扩展包com.xiaos.adapter; 进口android.content.Context; 进口android.util.SparseIntArray; 进口android.view.LayoutInflater; 进口android.view.View; 进口android.view.ViewGroup; 进口android.widget.BaseExpandableListAdapter; 进口android.widget.ImageView; 进口android.widget.TextView; 进口com.xiaos.pinnedheaderexpandable.R; 进口com.xiaos.view.PinnedHeaderExpandableListView; 进口com.xiaos.view.PinnedHeaderExpandableListView.HeaderAdapter; 公共类PinnedHeaderExpandableAdapter BaseExpandableListAdapter延伸实现HeaderAdapter { 私人String [] [] childrenData; 私人String [] groupData; 私人上下文语境; 私人PinnedHeaderExpandableListView列表视图; 私人LayoutInflater增压泵; 公共PinnedHeaderExpandableAdapter (String [] [] childrenData, String [] groupData 、上下文语境PinnedHeaderExpandableListView listView) { 这一点。groupData=https://www.yisu.com/zixun/groupData; 这一点。childrenData=childrenData; 这一点。上下文=上下文; 这一点。listView=列表视图; 增压泵=LayoutInflater.from (this.context); } @Override 公共对象getChild (int groupPosition int childPosition) { 返回childrenData [groupPosition] [childPosition]; } @Override 公共长getChildId (int groupPosition int childPosition) { 返回0; } @Override 公众视线getChildView (int groupPosition, int childPosition 布尔isLastChild视图convertView ViewGroup父){ 视图视图=零; 如果(convertView !=null) { 视图=convertView; 其他}{ 视图=createChildrenView (); } TextView文本=(TextView) view.findViewById (R.id.childto); text.setText (childrenData [groupPosition] [childPosition]); 返回视图; } @Override 公共int getChildrenCount (int groupPosition) { 返回childrenData [groupPosition] . length; } @Override 公共对象getGroup (int groupPosition) { 返回groupData [groupPosition]; } @Override 公共int getGroupCount () { 返回groupData.length; } @Override 公共长getGroupId (int groupPosition) { 返回0; } @Override 公众视线getGroupView (int groupPosition,布尔扩大, 视图convertView ViewGroup父){ 视图视图=零; 如果(convertView !=null) { 视图=convertView; 其他}{ 视图=createGroupView (); } 第四ImageView=(ImageView) view.findViewById (R.id.groupIcon); 如果(扩大){ iv.setImageResource (R.drawable.btn_browser2); } 其他{ iv.setImageResource (R.drawable.btn_browser); } TextView文本=(TextView) view.findViewById (R.id.groupto); text.setText (groupData [groupPosition]); 返回视图; } @Override 公共布尔hasStableIds () { 返回true; } @Override 公共布尔isChildSelectable (int groupPosition int childPosition) { 返回true; } 预展createChildrenView () { 返回inflater.inflate(出来。孩子,null); } 预展createGroupView () { 返回inflater.inflate(出来。组、空); } @Override 公共int getHeaderState (int groupPosition int childPosition) { 最后一个int childCount=getChildrenCount (groupPosition); 如果(childPosition==childCount - 1) { 返回PINNED_HEADER_PUSHED_UP; }如果(childPosition==1 & & ! listView.isGroupExpanded (groupPosition)) { 返回PINNED_HEADER_GONE; 其他}{ 返回PINNED_HEADER_VISIBLE; } } @Override 公共空间configureHeader(查看标题、int groupPosition int childPosition intα){ 字符串groupData=this.groupData [groupPosition]; ((TextView) header.findViewById (R.id.groupto)) . settext (groupData); } 私人SparseIntArray groupStatusMap=new SparseIntArray (); @Override 公共空间setGroupClickStatus (int, int groupPosition状态){ groupStatusMap。把(groupPosition、状态); } @Override 公共int getGroupClickStatus (int groupPosition) { 如果(groupStatusMap.keyAt (groupPosition)>=0) { 返回groupStatusMap.get (groupPosition); 其他}{ 返回0; } } }如何在Android应用中实现一个列表悬浮效果