Пользовательское представление Android Xamarin Forms не вызывает OnDraw - PullRequest
0 голосов
/ 30 августа 2018

Я переопределил OnMeasure в моем представлении (Android.Views.View)

protected override void OnMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
    int width = ResolveSizeAndState(500, widthMeasureSpec, 0);
    int height = ResolveSizeAndState(500, heightMeasureSpec, 0);
    SetMeasuredDimension(width, height);
    base.OnMeasure(width, height);
}

Я переопределил OnDraw

protected override void OnDraw(Canvas g)
{
    base.OnDraw(g);
    ...
}

Когда я звоню Invalidate(), он не звонит OnDraw().

Сам элемент управления содержится в StackLayout внутри ScrollView, и OnDraw работает только тогда, когда я устанавливаю VerticalOptions="FillAndExpand" на самом ScrollView, но это не тот результат, который мне нужен, потому что высота моего Пользовательский вид теперь имеет высоту ScrollView и обрезается, а не прокручивается.

Вот мой XAML от PCL

<ScrollView>
    <StackLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
        <Controls:SimpleCalendarView Items="{Binding EventItems}" Date="{Binding Date}" ItemClicked="EventClicked" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" />
    </StackLayout>
</ScrollView>

Может кто-нибудь помочь мне с тем, что я здесь делаю неправильно?

Спасибо.

...