我在我的页面中有一个带有不同部分的TableView。这种情况是当我向下滚动时,我希望在最后有一个类似于在顶部自动滚动的按钮。我正在考虑使用Focus()或类似的东西,但我没有找到正确的方法来做到这一点。可以做到吗?Xamarin Forms-TableView - 转到第一个元素
在此先感谢。 Oscar
我在我的页面中有一个带有不同部分的TableView。这种情况是当我向下滚动时,我希望在最后有一个类似于在顶部自动滚动的按钮。我正在考虑使用Focus()或类似的东西,但我没有找到正确的方法来做到这一点。可以做到吗?Xamarin Forms-TableView - 转到第一个元素
在此先感谢。 Oscar
具有DataTemplateSelector实现的Xamarin.Forms.ListView将是最简单的方法,使其工作如BraveHeart在他的评论中提到的那样。但是,您可以通过使用自定义渲染器在本机控件上执行此操作来完成此操作。
在iOS:
Xamarin.Forms.TableView从UITableView中暴露所述ScrollToRow方法继承。在你的情况下,当调用它时,你会想在自定义渲染器中调用下面的方法。
ScrollToRow(NSIndex.FromIndex(0), UITableViewScrollPosition.Top, true);
Xamarin.iOS documentation on ScrollToRow method
在Android上:
同样的想法在这里,你会想调用的自定义呈现下面的方法:
SmoothScrollToPosition(0,0);
Xamarin.Android documentation on SmoothScrollToPosition
较硬其中一部分是弄清楚如何拥有e Xamarin.Forms.Button.Clicked事件处理程序将连接到平台特定自定义渲染器。您可以使用OnPropertyChanged覆盖,并在您的Xamarin.Forms元素上使用布尔属性来设置触发上述方法。你也可以在你的Xamarin.Forms.ListView上创建一个自定义事件处理程序,并调用特定于平台的方法。我建议您查看Xamarin.Forms如何在Android here上执行此操作。你可以做一些非常相似的事情。
我希望这个帮助!
感谢您的回答!我从来没有想过,这件简单的事情会在Xamarin中变得如此复杂。我会尝试与此并再给出答案。 – omartinma
阅读的意见后,我会说这取决于案件:
感谢您的回答。我已经测试过将所有的TableView放在ScrollView中,但它工作很奇怪,也许是因为tableview在另一个ScrollView中,我错了吗? – omartinma
准确地尝试用stacklayout或网格替换tableView – BraveHeart
谢谢,我会尝试! – omartinma
我尝试所有的解决方案,我有一个问题,不同的问题,所有:
我希望找到另一种解决方案。谢谢!
编辑:我发现了一些有趣的是,为什么你要的是我的情况Update Xamarin ContentPage content on event isn't working
只需使用带有窗体的DataTemplateSelector即可拥有不同的单元格。文档:https://developer.xamarin.com/guides/xamarin-forms/templates/data-templates/selector/ – BrewMate
完美的作品?你确定你想在你的情况下使用TableView吗?也许一个ListView与分组和页眉和页脚可以为你做这个?我问,因为在ListView中,你可以有一个ScrollTo方法 – BraveHeart
我有一个窗体,用户需要填写近10个值,有时用户需要回到顶部,这可能在Listview中吗? – omartinma
查看我的回答 – BraveHeart