Xamarin Forms Android自定义视图不会调用OnDraw

时间:2018-08-30 18:58:54

标签: xaml xamarin xamarin.forms xamarin.android custom-controls

我在视图(Android.Views.View)中覆盖了OnMeasure

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()

控件本身包含在ScrollView内的StackLayout中,OnDraw唯一起作用的时间是我在ScrollView本身上设置VerticalOptions="FillAndExpand"时,但这不是我想要的结果,因为我的自定义视图的高度现在是ScrollView的高度,并且在不滚动时被切除了。

这是我来自PCL的XAML

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

有人可以帮我解决我在这里做错的事情吗?

谢谢。

0 个答案:

没有答案