用于动态layout的一个工具类

最近需要实现一个类似Google浏览器和Google搜索在Android系统上面的动态ActionBar效果,即随着拖动内容部分的动作,ActionBar部分的位置和显隐也要变化。

开始直接在一个View上实现了,结果发现又一个View要用。代码洁癖犯了,干脆直接提出来做个通用的。

支持上下左右四个方向的显隐,不过一个控件要对应一个DynamicLayouter。代码扔到gist了,懒得专门建一个repository。

用法类似于:

// 初始化,toolBar就是需要动态显隐的控件
mDynamicLayouter = new DynamicLayouter(toolBar, Orientation.BOTTOM);
 
// 在带有scrollbar的控件上设置一个touch listener用于获取拖动事件
        lstContent.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                mDynamicLayouter.feedMotionEvent(event);
                return false;
            }
        });

Leave a Reply