代码之家  ›  专栏  ›  技术社区  ›  Michał Czerwiński

折叠工具栏布局-全高图像并在开始时滚动

  •  0
  • Michał Czerwiński  · 技术社区  · 8 年前

    我有一个与此非常相似的布局: http://antonioleiva.com/collapsing-toolbar-layout/ -折叠工具栏的经典方法。 我想用以下特性扩展它:

    ImageView是全屏高度,在活动开始时,它会自动向下滚动一半高度。当活动开始时,用户将向下滚动,它将以旧的方式运行,但(在活动开始时)当他向上滚动时,他可以一直向上滚动,以使图像达到全屏高度。

    我需要采取什么样的步骤才能让它表现出我想象中的样子?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Michał Czerwiński    8 年前

    这是总体思路。 活动:

    public void setupMovingBar(final Boolean full) {
    
        final Display dWidth = getWindowManager().getDefaultDisplay();
    
        appBarLayout.post(new Runnable() {
            @Override
            public void run() {
                int heightPx = dWidth.getHeight();
                if (!full) {
                    heightPx = dWidth.getHeight() - (dWidth.getHeight() * 1 / 3);
                }
    
                setAppBarOffset(heightPx);
    
            }
        });
    }
    
    
    private void setAppBarOffset(int offsetPx) {
        CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
        AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior();
        behavior.onNestedPreScroll(clContent, appBarLayout, null, 0, offsetPx, new int[]{0, 0});
    }