修复ObservableScrollView Android中的项目

时间:2014-07-29 09:15:16

标签: android scrollview material-design googleio

当我点击ActionBar时,我正在尝试修改ScrollView中的项目。 它正确停止但当我返回主滚动位置时,我在布局上方获得一个随机边距(截图3)。 (屏幕截图2中的边距不是错误)

Problem screenshot

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是包含棕色布局的布局。

有一种方法可以在滚动视图中修复项目吗?

1 个答案:

答案 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);
}