Xamarin Telerik RadListView安卓正常iOS端无绑定数据如何解决
你遇到的RadListView iOS端不显示条目是Telerik UI for Xamarin在iOS平台的常见适配问题,按以下步骤修改即可:
问题根因
Telerik RadListView在iOS端的布局渲染逻辑比Android严格,未显式声明布局规则、缺少iOS端组件初始化都会导致条目不渲染。
修复步骤
- 给XAML中的RadListView添加显式的3列网格布局定义,同时指定单元格高度避免iOS端自动计算失效,修改后的XAML代码如下:
<telerikDataControls:RadListView Grid.Row="2" x:Name="Locations" ItemsSource="{Binding CurrentLocationList}" VerticalScrollBarVisibility="Always" VerticalOptions="FillAndExpand" ItemTapped="Locations_ItemTapped" BackgroundColor="Aqua"> <!-- 新增这部分布局定义,Span设为3对应你要的3列展示 --> <telerikDataControls:RadListView.LayoutDefinition> <telerikListView:ListViewGridLayout Span="3" ItemLength="60" IsItemLengthFixed="False"/> </telerikDataControls:RadListView.LayoutDefinition> <telerikDataControls:RadListView.ItemTemplate> <DataTemplate> <telerikListView:ListViewTemplateCell> <telerikListView:ListViewTemplateCell.View> <StackLayout Orientation="Horizontal" Margin="5,5,5,5"> <Label Text="{Binding Name}" FontSize="20" VerticalOptions="Center" /> <Label Text="{Binding Id}" HorizontalOptions="EndAndExpand" FontSize="20" VerticalOptions="Center" /> <local:GrayRadioButton x:Name="rbtSelectedLocation" IsChecked="{Binding Selected}" GroupName="grpLocation" /> </StackLayout> </telerikListView:ListViewTemplateCell.View> </telerikListView:ListViewTemplateCell> </DataTemplate> </telerikDataControls:RadListView.ItemTemplate> </telerikDataControls:RadListView>
- 检查iOS项目
AppDelegate.cs的FinishedLaunching方法,确保在加载Xamarin Forms之前已经初始化Telerik组件,添加以下代码:
Telerik.XamarinForms.Common.iOS.TelerikForms.Init(); global::Xamarin.Forms.Forms.Init(); LoadApplication(new App());
效果参考
- Android端正常运行效果:

- 修复前iOS端异常效果:

内容的提问来源于stack exchange,提问作者Cef
相关产品推荐
相关产品推荐

