4

私がやろうとしていることは次のとおりです。

ビュー内にスクロールビューがあり、その高さは親の高さの 2/9 のようです。次に、ユーザーはこのスクロールビューを変換して大きくすることができます。ただし、スクロールビューのサイズは明らかに変わりません。したがって、スクロールビューのサイズが大きくなっても、ポイントが殺されます。最初は大きくすることができました。ただし、スクロールできないほどサイズが大きいため、スクロールしません。

正しく説明できたかどうかはわかりません。私がしたことを願っています。

よろしく。

編集 - - - - - - -

私のポイントをさらに説明するためのいくつかのコード

これがスクロールビュー

public class TranslatableScrollView : ScrollView
{
        public Action TranslateUp { get; set; }
        public Action TranslateDown { get; set; }
        bool SwipedUp;
    public TranslatableScrollView()
    {
        SwipedUp = false;
        Scrolled += async delegate {
            if (!SwipedUp && ScrollY > 0) {
                TranslateUp.Invoke ();
                SwipedUp = true;
            } else if (SwipedUp && ScrollY <= 0) {

                TranslateDown.Invoke ();
                SwipedUp = false;
            }
        };
    }
}

そして、これはページ内のコードです

sv_footer = new TranslatableScrollView {
                    Content = new StackLayout {
                        VerticalOptions =         LayoutOptions.FillAndExpand,
                        HorizontalOptions = LayoutOptions.FillAndExpand,
                        Children = {
                            l_details,
                            l_place
                        },
                    }
                };
sv_footer.TranslateUp += new Action (async delegate {

                Parent.ForceLayout();
                await cv_scrollContainer.TranslateTo(0, -transX, aSpeed, easing);
            });

sv_footer.TranslateDown += new Action (async delegate {
                await cv_scrollContainer.TranslateTo(0, 0, aSpeed, easing);
            });

cv_scrollContainer = new ContentView {
                Content = sv_footer,
                VerticalOptions = LayoutOptions.Fill
            };

そうしないと、スクロールビューをコンテンツビュー内に配置します。スクロールインデックスは、翻訳時に0になります。参照: Xamarin Forms: ScrollView が TranslateTo を物乞いに戻す

4

1 に答える 1

3

The problem was, translateTo only changes the position of the element. I could use scaleTo after the translation. However it changes the both dimensions. Someone from Xamarin Forums suggested me to use LayoutTo which I did not know existed. With layoutTo you can change both the size and location. Giving an instance of Rectangle type.

于 2015-12-08T00:39:19.667 に答える