Android从0到完整项目(5)常见的列表,表格布局(2)

常见的列表,表格布局(2)

7.简单聊天

8.仿朋友圈

9.顶部悬停(简单吸顶)

效果图

Android从0到完整项目(5)常见的列表,表格布局(2)_第1张图片
简单聊天

Android从0到完整项目(5)常见的列表,表格布局(2)_第2张图片
简单聊天

实现方式: BaseAdapter 实现
getItemViewType 方法 通过Type去定义是收到的信息或者是本人发送的信息。
下面选择面板使用简单的隐藏显示的方式进行展示。这个只是一个简单的实现。 可以通过ViewPager+RecyleView/GridView 实现仿QQ的聊天面板

Android从0到完整项目(5)常见的列表,表格布局(2)_第3张图片
朋友圈

原作者:https://github.com/Naoki2015/CircleDemo
朋友圈实现是 从github上借鉴的 由于大神的代码是 MVP模式做的 ,我将代码重构 用我们习惯的MVC去重新构建了一下。 主要的自定义组件是 九宫格图片 和 点赞人列表 更多展开

顶部悬停

Android从0到完整项目(5)常见的列表,表格布局(2)_第4张图片
顶部悬停
Android从0到完整项目(5)常见的列表,表格布局(2)_第5张图片
顶部悬停

一个简单的RecyleView 和 外部布局就可以轻松实现。
一个相对布局中放入一个Recyleview 然后放入悬停View 布局
将悬停布局抽出来。将它设置成为 RecycleView的HeadView

mainRecycler.addOnScrollListener(new RecyclerView.OnScrollListener() {


            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                int[] location = new int[2];
                mImageView.getLocationOnScreen(location);
                int y = location[1];
                Log.d("MYTAG","imageY == "+y);
                imageY = y;
            }

            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                if (mHeaderView == null) return;
                int getTop = mHeaderView.getDistanceY();
                Log.d("MYTAG","getTop == "+getTop);
                if (getTop <= imageY) {
                    mImageView.setVisibility(View.VISIBLE);
                } else {
                    mImageView.setY(0);
                    mImageView.setVisibility(View.GONE);
                }
            }

mainRecycler.addOnScrollListener 通过滚动进行对相对布局中的 头部View进行 显示隐藏

代码不定时更新 https://github.com/chinaltz/JustAndroid

你可能感兴趣的:(Android从0到完整项目(5)常见的列表,表格布局(2))