对于数据模板,我在StackLayout
中使用了标签,并为grid-view
创建了自定义渲染器。
代码RendererFactory.getRenderer()
不起作用;它只显示StackLayout
内部没有任何标签。
任何帮助都将不胜感激。
答案 0 :(得分:1)
截至目前,RendererFactory.getRenderer()
无法使用包含子内容refer this link的自动布局容器(如StackLayout / GridLayout)。仅渲染主要父级,但子级未在UI中呈现,但转换为本机视图后控件可用
this._view = RendererFactory.GetRenderer(this._viewCell.View).NativeView;
尝试使用 AbsoluteLayout
并相应地定位控件。我曾使用XLabs Grid View Control尝试过这个,因为他们使用网格视图渲染器来制作UICollectionView(TileList)和GridViewCell,用于从窗体生成viewCell到Native。
<controls:GridView
x:Name="GrdView"
RowSpacing="5"
Padding="5"
ColumnSpacing = "5"
ItemWidth ="152"
ItemHeight = "200"
ItemsSource="{Binding gridColl}"
>
<controls:GridView.ItemTemplate>
<DataTemplate >
<ViewCell>
<ViewCell.View>
<!-- WORKING-->
<AbsoluteLayout BackgroundColor="Red">
<Image Source="{Binding image}"
AbsoluteLayout.LayoutBounds="0, 0, 0.5, 0.5"
AbsoluteLayout.LayoutFlags="All"/>
<BoxView Color="#8080FF"
AbsoluteLayout.LayoutBounds="0.33, 0, 0.25, 0.25"
AbsoluteLayout.LayoutFlags="All" />
<Label Text="Test" BackgroundColor="Red"
AbsoluteLayout.LayoutBounds="1, 1, 0.5, 0.5"
AbsoluteLayout.LayoutFlags="All"/>
</AbsoluteLayout>
<!--NOT WORKING-->
<!--<StackLayout BackgroundColor="Blue">
<Image Source="{Binding image}" />
<Label Text="Test" BackgroundColor="Red"/>
</StackLayout>-->
</ViewCell.View>
</ViewCell>
</DataTemplate>
</controls:GridView.ItemTemplate>
</controls:GridView>
我希望这可以帮助你...