Android初级教程_用ExpandableListView实现类似QQ好友列表
16lz
2021-01-26
我们知道QQ好友列表分类使用ExpandableListView实现的,但是它在此基础上做改进,如打开分组,滑动时组标题会悬浮在最上端.
方便用户关闭分组.效果类似于下图:
实现代码如下所示:
[java] view plain copy
- @Override
- publicvoidonScroll(AbsListViewview,intfirstVisibleItem,
- intvisibleItemCount,inttotalItemCount){
- //防止三星,魅族等手机第一个条目可以一直往下拉,父条目和悬浮同时出现的问题
- if(firstVisibleItem==0){
- view_flotage.setVisibility(View.GONE);
- }
- //控制滑动时TextView的显示与隐藏
- intnpos=view.pointToPosition(0,0);
- if(npos!=AdapterView.INVALID_POSITION){
- longpos=expandableList.getExpandableListPosition(npos);
- intchildPos=ExpandableListView.getPackedPositionChild(pos);
- finalintgroupPos=ExpandableListView.getPackedPositionGroup(pos);
- if(childPos==AdapterView.INVALID_POSITION){
- ViewgroupView=expandableList.getChildAt(npos
- -expandableList.getFirstVisiblePosition());
- indicatorGroupHeight=groupView.getHeight();
- }
- if(indicatorGroupHeight==0){
- return;
- }
- //if(isExpanded){
- if(count_expand>0){
- the_group_expand_position=groupPos;
- group_content.setText(groupData.get(the_group_expand_position)
- .get("group_text"));
- if(the_group_expand_position!=groupPos||!expandableList.isGroupExpanded(groupPos)){
- view_flotage.setVisibility(View.GONE);
- }else{
- view_flotage.setVisibility(View.VISIBLE);
- }
- }
- if(count_expand==0){
- view_flotage.setVisibility(View.GONE);
- }
- }
- if(the_group_expand_position==-1){
- return;
- }
- /**
- *calculatepoint(0,indicatorGroupHeight)
- */
- intshowHeight=getHeight();
- MarginLayoutParamslayoutParams=(MarginLayoutParams)view_flotage
- .getLayoutParams();
- //得到悬浮的条滑出屏幕多少
- layoutParams.topMargin=-(indicatorGroupHeight-showHeight);
- view_flotage.setLayoutParams(layoutParams);
- }
有的手机品牌不一样可能会出现如下情况:
所以需要加上如下代码:
[java] view plain copy
- //防止三星,魅族等手机第一个条目可以一直往下拉,父条目和悬浮同时出现的问题
- if(firstVisibleItem==0){
- view_flotage.setVisibility(View.GONE);
- }
--------------------------------------------------------------------------------
最近有些网友需要代码,现在附上下载地址.http://download.csdn.net/detail/johnny901114/4513242
更多相关文章
- Android双向滑动控件
- ListView属性及方法android
- Android(安卓)popupwindow在指定控件正下方滑动弹出效果
- Android(安卓)ItemTouchHelper实现RecyclerView交互动画
- Android(安卓)Activity上下滑动切换背景
- Android学习系列Toolbar,AppBarLayout,CoordinatorLayout,Collapsin
- android中利用 ViewPage 实现滑动屏
- 【Parallax Animation】实现知乎 Android(安卓)客户端启动页视差
- android中view手势滑动冲突的解决方法