如何在android中向下滚动缩小标题

时间:2014-08-18 12:04:43

标签: android scrollview

以下是链接http://tympanus.net/Blueprints/AnimatedHeader/,其中标题会在向下滚动时缩小。 如何在Android中获得相同的效果。

以下是样本

我已经在OnScrollViewListener和onScrollChanged中实现了这个东西,我已经编写了这个代码来实现我的目标但是没有成功。

  • block_height是一个修复重点,我想停止收缩......就像150

  • currentHeight是标题的初始高度,是block_height的两倍..就像300

请参阅示例代码

if (headerView.getLayoutParams().height <= (block_height * 2) 
&&  headerView.getLayoutParams().height >= block_height){

    currentHeight -= 1;
    headerView.getLayoutParams().height = currentHeight;
    headerView.invalidate();
 }

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

将您的代码编辑为:

if (headerView.getHeight() <= (block_height * 2) 
    &&  headerView.getHeight() >= block_height)
{
  currentHeight -= 1;
  headerView.layout(headerView.getLeft(), headerView.getTop(), 
                    headerView.getRight(), headerView.getTop()+currentHeight);
  headerView.forceLayout();
}

答案 2 :(得分:0)

您可以通过检测scrollView的onScroll事件来做到这一点。像这样:

scrollView.getViewTreeObserver().addOnScrollChangedListener(new OnScrollChangedListener() {

    @Override
    public void onScrollChanged() {

        //Change your header size here

    }
});

您必须设置一些视图,您希望在ScrollView上方成为标题,并在ScrollView中设置其余部分。然后在Activity的onCreate()方法中使用我为你粘贴的代码