我不能指定customView的高度吗?

时间:2019-11-06 10:17:24

标签: xamarin.forms

我创建了一个CustomView,用于CollectionView的DataTemplate

<Frame CornerRadius="10" IsClippedToBounds="True" Padding="0" HasShadow="False" >
        <AbsoluteLayout Padding="0" Margin="0">
            <Image Source="image1.png" AbsoluteLayout.LayoutBounds="0,0,1,1" Aspect="AspectFill" AbsoluteLayout.LayoutFlags="All"></Image>
            <Frame BackgroundColor="#fedb0a" AbsoluteLayout.LayoutBounds="0,0,0.426,0.1177" AbsoluteLayout.LayoutFlags="All" HasShadow="False">
                <StackLayout Orientation="Horizontal" AbsoluteLayout.LayoutBounds="0.682,0.29,AutoSize,0.05885">
                    <Label Text="Hi" FontSize="Medium" VerticalOptions="CenterAndExpand"></Label>
                </StackLayout>
            </Frame>
            <StackLayout AbsoluteLayout.LayoutBounds="0,1,1,0.2" AbsoluteLayout.LayoutFlags="All" BackgroundColor="#95000000" Orientation="Horizontal">
                <StackLayout VerticalOptions="CenterAndExpand" Margin="5,0,5,0">
                    <Frame CornerRadius="20" IsClippedToBounds="True" Padding="0">
                        <Image Source="icon1.png" Aspect="AspectFill" WidthRequest="40" HeightRequest="40"></Image>
                    </Frame>
                </StackLayout>
                <StackLayout VerticalOptions="CenterAndExpand">
                    <Label Text="hopeshow~" FontSize="Large" TextColor="#fedb0a"></Label>
                    <Label Text="2020 year" FontSize="Medium" TextColor="White"></Label>
                </StackLayout>
            </StackLayout>
        </AbsoluteLayout>
    </Frame>

我将其放在我的DataTemplate <vi:MyCustomView HeightRequest="40"></vi:MyCustomView>中,但似乎HeightRequest没有排序。 该视图会自动放大一个大视图。

当我设置一个值时,WidthRequest就可以了。

如何处理?

1 个答案:

答案 0 :(得分:1)

StackLayout AbsoluteLayout 之类的布局不适合其子元素的大小。因此,如果要实现它,可以使用=INDEX($H$1:$H$2,IF($A1<2,1,0)) 代替它们。

Grid

有关布局的更多详细信息,您可以检查https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/layouts/grid