如何在Android应用中实现一个列表悬浮效果

  介绍

这期内容当中小编将会给大家带来有关如何在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应用中实现一个列表悬浮效果