【问题标题】:Xamarin.Forms: How to expand row from listview over full screen after tap or click?Xamarin.Forms:点击或单击后如何在全屏上展开列表视图中的行?
【发布时间】:2016-11-25 14:06:11
【问题描述】:

我有两个 单元格模板 出现在 ListView 中。单击或点击单元格后,加载第二个扩展(调整大小)模板,该模板更长并显示更多信息。 问题是我希望第二个模板扩展和延伸到整个屏幕(从工具栏到底部),而不仅仅是模板的内容。 明确地说,我不想打开一个新窗口 (Navigation.PushAsync),而是将整个内容全屏展开。 现在我有办法在点击后修复扩展单元格的高度,但这不是我想要的,因为每个移动设备都不同,分辨率也不同。

有什么简单的方法可以做到这一点,或者我必须使用一些 Nuget?

提前致谢!

【问题讨论】:

  • 为什么不想打开一个新窗口?根据您的描述,这似乎会产生您想要的效果,尽管 Navigation.PushModalAsync 在您的情况下可能比 PushAsync 更好,因为它会覆盖更多的屏幕。
  • @DavidS 不幸的是,我无法打开新窗口,因为我的老板要求活动行(单元格)遍布整个屏幕(工具栏除外)并且看起来展开,而不是打开。也许像动画......

标签: listview xamarin.forms expandablelistview


【解决方案1】:

对于列表视图单元格,您可以使用网格。然后将宽度和高度与列定义绑定。怎么做你可以在网上找到。您可以在平台特定项目中获得屏幕宽度和高度。在android宽度上你可以得到这样的:

App.ScreenWidth = ( int )( Resources.DisplayMetrics.WidthPixels / Resources.DisplayMetrics.Density );

高度类似。

【讨论】:

  • 非常感谢,但设置宽度和高度后,我需要扩展单元格位于屏幕顶部并覆盖整个屏幕。
  • 我做到了。使用 App.ScreenWidth 和 Height 后,我​​将这行代码 myList.ScrollTo(e.SelectedItem, ScrollToPosition.Start, true); 放在点击事件中以将选定的行移动到屏幕顶部。再次感谢 ;-)
  • 很高兴你解决了它。对我来说,这也很有趣,你是怎么做到的。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多