我们知道QQ好友列表分类使用ExpandableListView实现的,但是它在此基础上做改进,如打开分组,滑动时组标题会悬浮在最上端.

方便用户关闭分组.效果类似于下图:





实现代码如下所示:

[java] view plain copy
  1. @Override
  2. publicvoidonScroll(AbsListViewview,intfirstVisibleItem,
  3. intvisibleItemCount,inttotalItemCount){
  4. //防止三星,魅族等手机第一个条目可以一直往下拉,父条目和悬浮同时出现的问题
  5. if(firstVisibleItem==0){
  6. view_flotage.setVisibility(View.GONE);
  7. }
  8. //控制滑动时TextView的显示与隐藏
  9. intnpos=view.pointToPosition(0,0);
  10. if(npos!=AdapterView.INVALID_POSITION){
  11. longpos=expandableList.getExpandableListPosition(npos);
  12. intchildPos=ExpandableListView.getPackedPositionChild(pos);
  13. finalintgroupPos=ExpandableListView.getPackedPositionGroup(pos);
  14. if(childPos==AdapterView.INVALID_POSITION){
  15. ViewgroupView=expandableList.getChildAt(npos
  16. -expandableList.getFirstVisiblePosition());
  17. indicatorGroupHeight=groupView.getHeight();
  18. }
  19. if(indicatorGroupHeight==0){
  20. return;
  21. }
  22. //if(isExpanded){
  23. if(count_expand>0){
  24. the_group_expand_position=groupPos;
  25. group_content.setText(groupData.get(the_group_expand_position)
  26. .get("group_text"));
  27. if(the_group_expand_position!=groupPos||!expandableList.isGroupExpanded(groupPos)){
  28. view_flotage.setVisibility(View.GONE);
  29. }else{
  30. view_flotage.setVisibility(View.VISIBLE);
  31. }
  32. }
  33. if(count_expand==0){
  34. view_flotage.setVisibility(View.GONE);
  35. }
  36. }
  37. if(the_group_expand_position==-1){
  38. return;
  39. }
  40. /**
  41. *calculatepoint(0,indicatorGroupHeight)
  42. */
  43. intshowHeight=getHeight();
  44. MarginLayoutParamslayoutParams=(MarginLayoutParams)view_flotage
  45. .getLayoutParams();
  46. //得到悬浮的条滑出屏幕多少
  47. layoutParams.topMargin=-(indicatorGroupHeight-showHeight);
  48. view_flotage.setLayoutParams(layoutParams);
  49. }

有的手机品牌不一样可能会出现如下情况:



所以需要加上如下代码:

[java] view plain copy
  1. //防止三星,魅族等手机第一个条目可以一直往下拉,父条目和悬浮同时出现的问题
  2. if(firstVisibleItem==0){
  3. view_flotage.setVisibility(View.GONE);
  4. }


--------------------------------------------------------------------------------


最近有些网友需要代码,现在附上下载地址.http://download.csdn.net/detail/johnny901114/4513242


更多相关文章

  1. Android双向滑动控件
  2. ListView属性及方法android
  3. Android(安卓)popupwindow在指定控件正下方滑动弹出效果
  4. Android(安卓)ItemTouchHelper实现RecyclerView交互动画
  5. Android(安卓)Activity上下滑动切换背景
  6. Android学习系列Toolbar,AppBarLayout,CoordinatorLayout,Collapsin
  7. android中利用 ViewPage 实现滑动屏
  8. 【Parallax Animation】实现知乎 Android(安卓)客户端启动页视差
  9. android中view手势滑动冲突的解决方法

随机推荐

  1. Android XML解析(Simple API for XML(SAX
  2. 记录一个小技巧-Android日志工具
  3. android双网卡
  4. Android实现简单的闹钟
  5. Android一个简易的登录界面
  6. Android Spinner列表选择框的应用
  7. Android开发视频教程-深入浅出系列Lesson
  8. android-短信发送器
  9. [android]关于开发无触摸屏(智能电视)的a
  10. android 常用命令