以下是链接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();
}
答案 0 :(得分:2)
看看这个ActionBar库可能满足你的要求
答案 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()方法中使用我为你粘贴的代码