Chinaunix首页 | 论坛 | 博客
  • 博客访问: 412966
  • 博文数量: 44
  • 博客积分: 4980
  • 博客等级: 上校
  • 技术积分: 1035
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-09 20:39
个人简介

偶尔编程的胖子 40岁之后还能坚持学习

文章分类

全部博文(44)

文章存档

2023年(12)

2022年(2)

2011年(1)

2010年(6)

2009年(1)

2008年(22)

我的朋友

分类: Android平台

2023-10-31 16:48:50

CarouselView在Item滚动后,会产生一个scrolled的事件,或者说可以放一个回调函数来执行操作,
我的设计:在主界面上放了一些导航图标,然后导航到查询页面时,查询页面顶部是设备图片,下面是设备数据,同时支持通过CarouselView的滚动功能,动态更新设备数据,看简图,
一张是这界面,就是下面的产品介绍部分,另外一张图片就是点击后的界面,
xaml文件内的大致内容,


CarouselView_Scrolled即为滚动完成后的方法,
private void CarouselView_Scrolled(object sender, ItemsViewScrolledEventArgs e)
{
    
    if ( e.LastVisibleItemIndex == e.CenterItemIndex || e.FirstVisibleItemIndex == e.CenterItemIndex)
    {
        model.SwtichContent(e.CenterItemIndex);
    }
}


目前存在的问题是,这个回调会被多次调用,不论是从主界面导航过去时,定位到某一个项目,还是在产品介绍界面内部,使用滑动时,都会产生好多条,因此SwtichContent这个方法就会被多次调用,
通过调试发现每次回调好像没有什么规约,回调返回的三个索引号分别是LastVisibleItemIndex ,CenterItemIndex, 和FirstVisibleItemIndex ,但好像也没有关联,最后只能用上面的逻辑作了个简单判断,仍会调用多次,跟理想中不太一样。

不知道有没有简单方法,一次确认滚动结束,调用一次即可,先只好这样放着了;
好在影响不大,在手机上或者仿真时都能正常操作,没什么影响,但总觉得浪费了CPU。




阅读(319) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~