【问题标题】:How to add a (almost) stickey view to FadingActionBar?如何向 Fading ActionBar 添加(几乎)粘性视图?
【发布时间】:2014-03-16 17:24:01
【问题描述】:

背景

FadingActionBar 是一个库,它允许基于其下方内容的滚动来淡化操作栏,同时在内容上方还有一个标题。

问题

我希望标题部分是这样的:

  • 垂直线性布局
    • 获取整个父级的imageView
    • 带有一些视图的底部布局。

问题是我希望底部布局随着标题下方的内容滚动,并且 imageView 将像往常一样滚动,使用库的 parrallex 效果。

底部布局还在页眉部分,所以当滚动足够多时,它也应该被隐藏起来。

我尝试过的

我尝试在 addParallaxEffect 方法中(在“FadingActionBarHelperBase.java”文件中)调用 offsetTopAndBottom 来消除底部布局的滚动效果:

private void addParallaxEffect(final int scrollPosition) {
    final float damping = mUseParallax ? 0.5f : 1.0f;
    final int dampedScroll = (int) (scrollPosition * damping);
    int offset = mLastDampedScroll - dampedScroll;
    if (mStickeyView != null) {
        int stickeyOffset = mUseParallax ? (mLastScrollPosition - scrollPosition) / 2 : mLastScrollPosition - scrollPosition;
        mStickeyView.offsetTopAndBottom(stickeyOffset);
    }
    ...

这几乎可以正常工作。当我滚动到足以隐藏标题然后返回时它不起作用,因为它会随着时间的推移累积滚动。

问题

我怎样才能正确地将这个功能添加到库中?

是否有解决方法?

【问题讨论】:

    标签: android scroll android-actionbar parallax


    【解决方案1】:

    好的,我已经使用以下方法修复了它:

    if (mStickeyView != null) {
        final int stickeyOffset = -offset + mLastScrollPosition - scrollPosition;
        mStickeyView.offsetTopAndBottom(stickeyOffset);
    }
    

    但是,如果其他人找到其他更好的方法,请告诉我。


    编辑:

    正确的做法是使用 headerOverlayLayout() 作为底部布局,如“HeaderOverlayActivity”示例所示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-22
      相关资源
      最近更新 更多