有人能告诉我如何让ListView的焦点始终集中在列表的最后一项上吗?以WhatsApp中的对话为例,当我们发送消息时,刚刚到达的消息总是被聚焦...或者任何类似的解决方案?我所寻找的是,无论什么时候在ListView中插入了什么,而不是给予选项来查看下面的项目,我希望它是相反的方式。总是显示屏幕上的最后一个项目。
ListView
cczfrluj1#
我创建了一个示例,其中有两个元素,一个列表视图和一个用于添加新元素的按钮。这是我的XAML:
<Grid> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="4*" /> </Grid.RowDefinitions> <ListView x:Name="ListView" /> <Button Grid.Row="1" Clicked="Button_OnClicked" Text="Add animal" /> </Grid>
正如你所看到的按钮是非常巨大的,以显示更好的滚动。在我的Code-behind中,我使用ListView.ScrollTo方法滚动到最后添加的元素,并带有动画:
ListView.ScrollTo
public partial class MainPage : ContentPage { private ObservableCollection<String> animals; private int _counter = 0; public MainPage() { InitializeComponent(); animals = new ObservableCollection<string>(new List<string>{"dog","cat","fish","elephant","monkey"}); ListView.ItemsSource = animals; } private void Button_OnClicked(object sender, EventArgs e) { var newElement = "new animal"+_counter; _counter++; animals.Add(newElement); ListView.ScrollTo(newElement, ScrollToPosition.End, true); } }
我希望这能帮助你。
ajsxfq5m2#
我发现这对我来说还不错:
lv_items.ScrollTo(lv_items.ItemsSource.Cast<YourItemsSourceType>().Last(), ScrollToPosition.End, false);
2条答案
按热度按时间cczfrluj1#
我创建了一个示例,其中有两个元素,一个列表视图和一个用于添加新元素的按钮。
这是我的XAML:
正如你所看到的按钮是非常巨大的,以显示更好的滚动。
在我的Code-behind中,我使用
ListView.ScrollTo
方法滚动到最后添加的元素,并带有动画:我希望这能帮助你。
ajsxfq5m2#
我发现这对我来说还不错: