当我点击ActionBar时,我正在尝试修改ScrollView中的项目。 它正确停止但当我返回主滚动位置时,我在布局上方获得一个随机边距(截图3)。 (屏幕截图2中的边距不是错误)
My ObservableScrollView监听器
if(t > stackHeight && !animationActionBarstackedBg){
animationActionBarstackedBg = true;
} else if (t < stackHeight && animationActionBarstackedBg){
animationActionBarstackedBg = false;
}
frameImg.setPadding(frameImg.getPaddingLeft(), t/2, frameImg.getPaddingRight(), frameImg.getPaddingBottom());
if(animationActionBarstackedBg){
panelTitleContainer.setPadding(panelTitleContainer.getPaddingLeft(), t-stackHeight, panelTitleContainer.getPaddingRight(), panelTitleContainer.getPaddingBottom());
}
其中t是ScrollY,stackHeight是图像高度,frameImg是包含ImageView的FrameLayout(用于制作类似动画的Google I / O 2014),panelTitleContainer是包含棕色布局的布局。
有一种方法可以在滚动视图中修复项目吗?
答案 0 :(得分:0)
使用setTranslationY()
if(t > stackHeight && !animationActionBarstackedBg){
animationActionBarstackedBg = true;
} else if (t < stackHeight && animationActionBarstackedBg){
animationActionBarstackedBg = false;
}
frameImg.setTranslationY(svMain.getScrollY() * 0.5f);
if(!animationActionBarstackedBg){
panelTitleContainer.setTranslationY(0);
} else {
panelTitleContainer.setTranslationY(svMain.getScrollY() - stackHeight);
}