android标题栏颜色渐变效果的实现

先看下实现出来的效果:

​​​​​​​​​​​​​​

实现思路:

    思路一.ScrollView嵌套RecyclerView监听ScrollView是否滑动到底部(实现出来存在的问题:滑动页面明细有卡顿粘手的感觉,监听不到ScrollView)。

   思路二.使用添加头部和尾部的方式进行实现(我使用的是BaseQuickAdapter)

实现步骤:

    在横向布局(工商服务)这一栏以上是添加的头部,以下是添加的尾部。(这个应该不是很难吧,就不细讲了不会的自己百度吧!^_^)

  以下是重点:

        //滚动监听
        rcyContextList.addOnScrollListener(new RecyclerView.OnScrollListener() {
            //滚动时回调
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                //屏幕中最后一个可见子项的position
                LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
                //当前屏幕所看到的子项个数
                int position = layoutManager.findFirstVisibleItemPosition();
                View firstVisiableChildView = layoutManager.findViewByPosition(position);
                //有头部
                if (position <= 1) {
                    int scollYHeight = -firstVisiableChildView.getTop();
                    if (scollYHeight >= DensityUtil.dip2px(mContext, 50)) {
                        llTop.setBackgroundColor(Color.argb((int) 255, 94, 149, 244));
                    } else {
                        float scale = (float) scollYHeight / DensityUtil.dip2px(mContext, 50);
                        float alpha = (255 * scale);
                        // 只是layout背景透明(仿知乎滑动效果)
                        llTop.setBackgroundColor(Color.argb((int) alpha, 94, 149, 244));
                    }
                } else {
                    llTop.setBackgroundColor(Color.argb((int) 255, 94, 149, 244));
                }
            }
        });

这就是实现的具体步骤了,一些布局就不贴了!希望对大家有所帮助!

你可能感兴趣的:(android)