有人可以告诉我如何将ListView
焦点始终放在最后一个列表项上吗?按照WhatsApp中的对话示例,当我们发送消息时,刚刚到达的消息总是集中在......或者任何类似的解决方案?
我想要的是在ListView
中插入某些内容时,而不是让“选项”上去查看下面的项目,我希望它是另一种方式。始终显示屏幕上的最后一项。
答案 0 :(得分:1)
我创建了一个示例,其中有两个元素,一个列表视图和一个用于添加新元素的按钮。
这是我的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>
正如您所看到的,按钮非常大,以便更好地显示滚动。
在我的代码隐藏中,我使用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);
}
}
我希望这可以帮到你。