我想得到列表视图中所选项目相对于屏幕的坐标(矩形边界:x,y,宽度和高度)(假设列表视图填满整个屏幕),这样我就可以在该位置创建一个对象,动画显示我的Xamarin.Forms应用程序中所选项目的一些细节.
xaml中的listview:
<ListView ItemTapped="ItemTapped"
AbsoluteLayout.LayoutFlags="All"
AbsoluteLayout.LayoutBounds="0.5, 0.5, 1.0, 1.0">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell Height="50">
<AbsoluteLayout>
<Label Text="{Binding Info}"
AbsoluteLayout.LayoutFlags="All"
AbsoluteLayout.LayoutBounds="0.1, 0.5, 0.7, 0.5"/>
</AbsoluteLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
ItemTapped事件的c#代码:
void ItemTapped(object sender, EventArgs args)
{
var listView = (ListView)sender; // the listview
var selectedItem = args.Item; // the selected item
// need to get selected item coordinates for the animation
var selectedItemBounds = ...
...
}
Run Code Online (Sandbox Code Playgroud)
最终我想在带有listview的Xamarin.Forms中创建这样的东西(listview中的对象数量不同):