Xamarin表单Android - 嵌套滚动在底部留下空白

时间:2016-07-12 10:19:48

标签: android xamarin.android xamarin.forms renderer nestedscrollview

我正在尝试自己实现嵌套滚动(由于环境限制,我无法使用Coordinator和AppBarLayout)。所以我创建了一个CoordinatorControl,它派生自StackLayout并实现INestedScrollingParent,它保存条形视图和内容视图,并同步它们之间的嵌套滚动。

这是CoordinatorControlRenderer : ViewRenderer<CoordinatorControl, LinearLayout>, INestedScrollingParent

的一部分
   void INestedScrollingParent.OnNestedScroll(View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed)
    {

        if (dyConsumed > 0)
        {
            scrollDown = false;
        }
        else
        {
            scrollDown = true;
        }
        if (dyConsumed != 0 && (!scrollDown && totalPixels < barViewNative.Height || scrollDown && totalPixels > 0))
        {
            totalPixels += dyConsumed;
            if (!scrollDown && totalPixels > barViewNative.Height)
            {
                totalPixels = (int)barViewNative.Height;
            }
            else if (scrollDown && totalPixels <0)
            {
                totalPixels = 0;
            }

            barViewNative.TranslationY = -totalPixels;
            contentViewNative.TranslationY = -totalPixels;
            }
        else
        {
            target.ScrollY += dyConsumed;
        }
    }

嵌套滚动工作正常(条形视图正在折叠和展开)。唯一的问题是,当折叠时我在屏幕底部有一个间隙,我无法填补。

Bar View Expanded:

Expanded

条形图折叠:

Collapsed

我试图改变contentView高度和重力但没有用。 如何更改contentView高度或让它自动填充剩余空间?

0 个答案:

没有答案