码迷,mamicode.com
首页 > 其他好文 > 详细

andorid 向上滑动控制标题栏显示

时间:2015-05-19 18:38:34      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

要实现这样的功能,原理不难,监听滑动距离再设置标题栏的透明度

下面是监听一个带头view的list实现核心代码:

mbar是标题栏

 mListView.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
            }

            @Override
            public void onScroll(AbsListView listView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
                if (visibleItemCount == 0) {
                    return;
                }

                int[] location = new int[2];
                mIvBusinessLogo.getLocationOnScreen(location);

                int mgTop = location[1] - getNotificationBarHeight() - mBar.getHeight();

                if (mgTop > 3) {
                    int top = -mgTop;
                    int headerHeight = mIvBusinessCover.getHeight() - mBar.getHeight();
                    if (top <= headerHeight) {
                        float f = (float) top / (float) headerHeight;
                        int alpha = (int) (f * 255);
//                        Log.i("wg", "alpha = " + alpha);
                        if (alpha < -255) {
                            alpha = -255;
                        }
                        mBar.setTitleBarAlpha(alpha);
                    }
                } else {
                    mBar.setTitleBarAlpha(255);
                }
            }
        });
    }

 

    private int getNotificationBarHeight() {
        if (notificationBarHeight == 0) {
            Rect rect = new Rect();
            this.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);

            notificationBarHeight = rect.top;
        }

        return notificationBarHeight;
    }

 

andorid 向上滑动控制标题栏显示

标签:

原文地址:http://www.cnblogs.com/zyandroid/p/4515015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!