首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在更改集合前滚动后,Xamarin.Forms ListView在安卓中呈现错误

是因为在更新ListView的数据源之后,ListView的滚动位置没有正确地被保留。这可能导致在滚动时出现错误的项或空白的项。

为了解决这个问题,可以尝试以下几种方法:

  1. 使用BindableLayout.ItemsSource属性:在Xamarin.Forms 4.0及更高版本中,可以使用BindableLayout.ItemsSource属性来绑定数据源。这种方式可以确保在更新数据源后,ListView的滚动位置会被正确地保留。
  2. 使用ScrollTo方法:在更新数据源后,可以使用ListView的ScrollTo方法来滚动到之前选中的项或指定的位置。例如,可以在数据源更新后调用ListView的ScrollTo方法来滚动到之前选中的项。
  3. 使用ListView的ItemAppearing事件:可以通过订阅ListView的ItemAppearing事件,在滚动时检查当前可见的项,并在数据源更新后重新定位到正确的位置。可以在ItemAppearing事件处理程序中使用ListView的ScrollTo方法来实现这一点。
  4. 使用自定义的滚动逻辑:如果以上方法仍然无法解决问题,可以考虑实现自定义的滚动逻辑。可以通过继承ListView并重写其滚动相关的方法来实现自定义的滚动行为。在自定义的滚动逻辑中,可以手动保存和恢复滚动位置。

总结起来,解决在更改集合前滚动后,Xamarin.Forms ListView在安卓中呈现错误的问题可以通过使用BindableLayout.ItemsSource属性、ScrollTo方法、ItemAppearing事件或自定义的滚动逻辑来实现。这些方法可以确保在更新数据源后,ListView的滚动位置能够正确地被保留。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动开发平台:https://cloud.tencent.com/product/mpp
  • 腾讯云数据库:https://cloud.tencent.com/product/cdb
  • 腾讯云服务器:https://cloud.tencent.com/product/cvm
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网:https://cloud.tencent.com/product/iot
  • 腾讯云存储:https://cloud.tencent.com/product/cos
  • 腾讯云区块链:https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/vr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Xamarin.Forms入门-使用 Xamarin.Forms 来创建跨平台的用户界面

API,例如iOS上的CoreMotion, PassKit, 和 StoreKit,上的NFC和Google Play Services。...:应用程序 Xamarin.iOS Application:iOS应用程序 Windows Phone Application:Windows Phone 应用程序 Xamarin Studio...Xamarin.Forms每一个屏幕画面都有对应概念叫:Page,Xamarin.Forms.Page 与 Activity对应, iOS 与 ViewController对应,Windows...> 数据绑定 通过数据绑定Xamarin.Forms的控件可以展示数据层的数据,还可以通过编辑控件将更改同步到数据层。...页面导航可以理解为一个后进先出的堆栈结构,展现一个页面相当于堆栈添加一个元素,如果需要回到一个页面,就需要把当前的页面从堆栈删除。

12.9K70
  • C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件..很很很很重要..),附源码

    正文 1.什么是渲染器 自定义渲染器提供了一种强大的方法来定制Xamarin.Forms控件的外观和行为。它们可用于一些微小的样式更改或复杂的平台特定布局和行为定制。...2.为什么需要自定义渲染器 因为不使用自定义渲染器的情况下更改Xamarin.Forms控件的外观是颗粒度较粗的....然后我们到的平台下,添加自定义的渲染器.,记得,是的平台,在这个类库下: ?...我们可以看到,,它就继承了widget的原生进度条,那么,原生进度条的所有属性,我们就都是可以用的了. 比如我们代码写的 "ScaleY" 这种属性和SetPadding这种方法....熟悉IOS开发的同学应该很清楚了..Uikit..就是IOS的用户界面 在上面的代码,我们针对平台,修改了他的Y轴高度和内边距的值,我们如何使用呢?

    2.4K100

    C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码

    例如(但不限于)iOS上的CoreMotion,PassKit和StoreKit; NFC和Android上的Google Play服务; Xamarin.Forms创建UI界面有两种技术。...(PCL),因为共享项目新建页面的时候有点问题,所以不推荐 点击OK,我们就可以得到如下几个程序集 我们可以看到,第一个是可移植的,这里就是我们要编写代码的地方, 下面2个,一个,一个IOS,如果你使用调试...所以,其实已经很明显了,它就是最基础的页面,类似于开发的Activity, 我们所开发基础界面,都需要继承它. 它只是一个内容容器,并不具体的呈现任何东西,需要配合各类控件才能展现画面....这里有个需要注意的地方.TabbedPage所生成的页面,IOS和会有所区别,如下: IOS的标签会在下面,的根据谷歌给出APP应用程序建议,会在上面......(在后续的章节里会讲,如何重写它,让的也统一在下面). 写在最后 前面我写过一个系列是关于Xamarin.Android的,导致很多朋友都以为,Xamarin只能开发  - -,我很方..

    5.4K61

    轻松又酷炫地实现弹幕效果——手把手教学

    ^_^ 也可以关注我的公众号,搜索 干货营 现在越来越多的视频网站或者客户端支持弹幕功能,弹幕功能似乎也成了很多人的爱好,发弹幕,看弹幕成了大家吐槽、搞笑、发表看法的一种方式。...itemView的位置,且一直滚动。...显示弹幕的时候会,会创建大量的View对象,如果不做处理,很容易造成内存溢出,所以我们要进行缓存优化: A、首先创建了map集合 ?...首先要有这样一个思路,适配器抽取出方法,返回itemView的高度,弹幕View根据弹幕绘制区域高度,除以itemView的高度,算出合理的弹幕行数(这里大家也理解了为什么写适配器的时候要定义...(有没有豁然开朗) 大家可以参照代码来看,计算最佳位置的思路是这样的: 将设置的位置转为二进制数,判断显示位置 将所有的行分为三份,两份行数相同,将第一份的行数四舍五入,将所有要显示弹幕的行数放入一集合

    1.1K20

    1000套(Android)毕业设计(带论文)、大作业、实例快速下载 (Android Studio)

    ,科大讯飞,代码有详细注释.zip 177 实例或大作业 开发-用的libgdx引擎写的ACE 弹幕射击游戏设计与开发.zip 178 实例或大作业 开发-Listview显示多任务下载效果。...实例或大作业 开发-ViewFlipper水平滑动.zip 198 实例或大作业 开发-ViewPager嵌套ListView实现了下拉刷新和上拉更多,解决了冲突的问题。....定位的轨迹存储.zip.zip 242 实例或大作业 开发-仿网易新闻listview加header图片滚动,上拉下拉刷新.zip.zip 243 实例或大作业 开发-GL音乐播放器.zip 244...zip 291 实例或大作业 开发-Listview显示多任务下载效果。...Demo.zip.zip 947 实例或大作业 开发-ListView滚动气泡提示.zip 948 实例或大作业 开发-橡皮擦与画笔的demo.zip 949 实例或大作业 开发-来电弹屏实例代码

    3.2K30

    React Native之ListView实现九宫格效果

    概述 原生开发ListView是很常用的一个列表控件,那么React Native(RN)如何实现该功能呢?...我们来看一下ListView的源码 ListView是基于ScrollView扩展得来的,所以具有ScrollView的相关属性: dataSource:数据源,类似于我们传入BaseAdapter...renderRow:渲染某一行,类似于BaseAdapter的getItem方法。 onEndReached:简单说就是用于分页操作,中原生开发,我们需要自己实现相应的方法。...(该属性是继承与ScrollView) renderHeader:渲染头部View,类似于ListView的addHeader....以上的属性基本可以解决一些常见的列表需求,如果我们想要实现网格的效果,也可以借助该组件来实现,有点类似于的RecyclerView控件。

    2.7K50

    2.Hello Xamarin

    2.创建新项目窗口选择 项目类型 菜单的 移动 ,并选择 移动应用(Xamarin.Forms) 项目类型。 ? 3....配置新项目窗口输入我们的要创建的项目名称 Notes 以及存储位置,单击创建并在弹出的选择框中选择空白,其他默认。 ?...一、配置环境并运行项目 到这里为止我们就已经创建了 Notes 的基本框架。由于我们这个专栏所开发的 APP 是运行在环境,因此我们需要配置的运行环境。...2.设备管理器单击 新建 按钮,设置我们的运行环境。 ? 3.创建完成 VS2019 会帮我们拉取我们所配置的环境。环境拉取完成之后,我们单击 F5 运行程序。...我们将会看到如下的界面,这时我们创建的程序就运行在了环境。 ? 到此为止我们就完成了 Xamarin 项目的创建和环境配置以及运行。

    1.9K10

    移动开发(一):使用.NET MAUI开发第一个APP

    对于工作多年的C#程序员来说,近来想尝试开发一款APP,考虑了很久最终选择使用.NET MAUI这个微软官方的框架来尝试体验开发APP,毕竟是使用Visual Studio开发工具,使用起来也比较的顺手...,结合微软官方的教程进行了APP的开发,下面把开发的过程给大家分享一下,对于那些从事C#的开发人员,想尝试开发自己的一款APP,也可以跟着本文进行尝试一下。....NET MAUI 的主要目的之一是使你能够单个代码库实现尽可能多的应用逻辑和 UI 布局。...会进入设备管理器界面这里点击create按钮,就会开始自动开始下载Android-sdk,下载过程需要持续几分钟,耐心等待下载完成。...下载完成的进入创建阶段创建完成如下:点击开始按钮开始启动模拟器部署到仿真器效果如下:仿真器加载需要等待一分钟左右点击按钮运行效果如下:六、总结以上是使用.NET MAUI搭建第一个APP的完整过程

    67750

    挥别web移动端开发差异和经典坑

    无此特性。 iOS ,手指按住屏幕上下拖动,会触发 touchmove 事件。这个事件触发的对象是整个 webview 容器,容器自然会被拖动,剩下的部分会成空白。...wx.onSocket断后再次发送链接IOS和差异 描述:小程序 wx.onSocket 链接 在手动断网,IOS会不停发送请求再链接onSocketOpen,不会 ,解决方法,做一个定时器启动链接...时间:201908 部分机器点击键盘发送相同内容 描述:部分机,如oppo 快速点击键盘发送,会发出2条一样的内容,防抖与节流均不生效; 时间:201907 微信公众号 微信授权回调带#...的URL跳转会出现空白 描述:手机,微信授权回调的函数中进行跳转至的URL不能带有#,但#号可放置结尾。...即在#home增加一个参数,页面跳转正常。 经排查,原因如下: 原来是缓存导致的,因其#号的参数等都被忽略,那么#以前的URL授权和授权一致,其不再发送网页请求去重新获取而是直接读取缓存。

    2.9K20

    面试一线互联网公司Android中高级开发工程师必问面试题集锦

    前言 今天我们说说中高级开发工程师岗位在大公司应聘的复习方向: 用人单位对中高级开发工程师方面的要求 已经火了这么多年了。现在如果还从事开发,基本上都是中高级开发工程师。...那么用人单位在对中高级开发工程师方面的要求要达到什么程度呢? 回答这个问题之前,我先说一下中高级开发工程师的薪资水平吧。至于为什么,先说这个。因为我怕接下来你没有动力去看,去学习,去提高。...贝壳,汽车之家,这些中高级开发工程师的薪资范围是30K-50K,并且有可能达到14薪。...我回答完,面试官就会继续问,那equals方法的比较原理是什么?hashCode的原理,跟equals的区别。随即转到Map的hashMap的相关原理。...这是我个人的一些面试经历以及自己收集的一些试题,熟悉本文中列出的知识点会大大增加通过两轮技术面试的几率。

    2.3K40

    第八夜 玛丽莲梦露

    听到玛丽莲梦露自杀的消息,现代艺术家沃霍尔深为震惊。他通过重复玛丽莲梦露的形象,创作了这幅波普艺术的名作。每一个形象既是重复,又有变化。 ? 描述 多个条目的视图方式应用很常见,比如联系人目录。...事件发生将调用的该方法。我们用setOnClickListener的方法,让MainActivity同时监听两个按钮的点击事件。当事件触发调用onClick()方法。...可以看到,点击id为category的按钮将启动CategoryActivity按钮。这就是我们下一步将要编写的。...视图元素的动态添加,会导致本身的效率会变慢。 我将使用ListView来重复利用构图方式。ListView是一个View Group,用于管理多条布局相似的视图元素。例如: ?...提供了ArrayAdapter类,可以综合以上功能。它可以为每个数据元素赋予相同的视图格式。将ListView与ArrayAdapter绑定就可以动态的调整条目了。 ?

    61510

    WPF是什么_wpf documentviewer

    GridView视图模式通过给列绑定数据字段和显示列标题来标识字段来显示数据项列表(说白了就是给一列数据加个标题header来说明这列数据是什么,然后将数据集合绑定到这列数据下面,一列数据就自动呈现出来了...相关数据内容显示水平行。例如,在上面图示,每个员工(employee类型)的姓(last name)、名(first name)和ID都作为一个集合被显示,因为它们一个行。...例如,不要设置Margin属性或指定一个ControlTemplate来将CheckBox添加到定义ListView控件上的ItemContainerStyle。...与GridView进行用户交互 当你程序中使用了GridView时,用户可以与GridView交互并修改其格式。例如,用户可以重新排序列(拖动表头使整列移动)、调整列的大小、选中表的项和滚动内容。...如果要更改选中项的样式,请参见ListView中使用触发器对选中项进行样式设置。

    4.7K20

    touch-action导致页面无法滚动

    就是ios基本都可以的,但是的页面滚动都没了。这是为什么呢?这个就要看下touch-action的更官方的触摸说明了。 默认情况下,平移(滚动)和捏手势由浏览器独占处理。...这意味着在实践,触摸动作通常只应用于具有一些自定义行为的单个元素,而不需要在该元素的任何后代上明确指定触摸动作。手势开始,触摸动作值的更改将不会对当前手势的行为产生任何影响。...这就是上无法页面滚动的原因。 为什么ios没有受影响呢,我觉得可能是ios默认支持touch事件的原因吧。如果你知道底层的原因或者详细的文档说明,可以告诉我哦。...– 问题拿到的冷静分析,拿到这个问题不要过于着急,还是要分析下产生问题的原因,尤其是机型,因为我们之前做测试都是模拟器和苹果的ios,而这次报问题的都是的机型,而且是小米56,坚果,华为等。...联想到这些机型,那么定位到可能是 :代码兼容部分的版本过低,这些不支持;代码某部分是对ios和卓有区分解释的,和系统有关,版本无关。

    4.2K00

    Android UI开发中所遇到的各种坑

    1.软键盘隐藏问题 问题描述:Activity按下返回调用finish()方法,界面已经销毁,但是软键盘依然还留在屏幕上,这让当前正在显示的Activity没有输入框的完全没法看,非常严重的视觉影响。...第二步,布局里加一个scrollview将你要被顶起的视图放进这里,然后当软键盘显示的时候,就会在scrollview里滚动以获得空间进行显示软键盘。...<activity Android:windowSoftInputMode="adjustResize" 2.merge标签注意点 merge标签只有根布局是FrameLayout时才有用,因为所有界面的根布局都是...使用后要注意如果在根布局,则不能用LayoutInflater来生成一个view,否则会报如下错误,由于我listview的getview()里用了这个带有merge的布局,所以崩溃了。...布局选择 FrameLayout是最简单的一种布局,所有界面的根布局都是FrameLayout,加载速度最快。

    1.3K20

    第八夜 玛丽莲梦露

    听到玛丽莲梦露自杀的消息,现代艺术家沃霍尔深为震惊。他通过重复玛丽莲梦露的形象,创作了这幅波普艺术的名作。每一个形象既是重复,又有变化。 ? 描述 多个条目的视图方式应用很常见,比如联系人目录。...事件发生将调用的该方法。我们用setOnClickListener的方法,让MainActivity同时监听两个按钮的点击事件。当事件触发调用onClick()方法。...可以看到,点击id为category的按钮将启动CategoryActivity按钮。这就是我们下一步将要编写的。...视图元素的动态添加,会导致本身的效率会变慢。 我将使用ListView来重复利用构图方式。ListView是一个View Group,用于管理多条布局相似的视图元素。例如: ?...提供了ArrayAdapter类,可以综合以上功能。它可以为每个数据元素赋予相同的视图格式。将ListView与ArrayAdapter绑定就可以动态的调整条目了。 ?

    1.9K90

    金九银十准备换场地?对标腾讯T3的Android高级工程师面试大纲及时雨来了

    面试题 1、ListView是什么 2、ListView的RecycleBin机制 3、ListView的优化 Android项目构建面试题 1、android构建流程 2、jenkins持续集成构建...线程做繁重的操作 架构模式面试题 Android基础——框架模式MVC的实践 http://blog.csdn.net/qq_30379689/article/details/52909656...Android基础——框架模式MVP的实践 http://blog.csdn.net/qq_30379689/article/details/52910567 Android基础——框架模式MVVM...要想面试成功进大厂,面试的准备肯定是要很充分的,除了上面的面试资源分享,我还整理了以下面试复习资源给大家: 最后我在这里分享一下这段时间从朋友,大佬那里收集到的一些2019-2020BAT 面试真题解析...以上内容均放在了开源项目:【github】 已收录,里面包含不同方向的自学Android路线、面试题集合/面经、及系列技术文章等,资源持续更新...

    1.1K72

    数据收集错误使Chrome 79 版的发布陷入混乱(IT)

    该漏洞会清除某些使用内置WebView应用程序的数据,该组件应用程序内部呈现网页。当用户登录应用程序内的网页时,或者如果默认的浏览器缺少自己的内部渲染引擎,Chrome就会启动加载内容。...他对LinuxInsider表示:“Google确实在发行版存在错误,但是Chrome和Chromium平台经过了广泛的测试,可以防止这些问题。”。...Google开发人员认为导致问题发生的Chrome 79 WebView代码更改六周的beta版本中发生的。...到目前为止,还没有保证补丁能将丢失的数据返回到受影响的应用程序。 一些Android应用程序WebView运行。...升级Chrome没有删除旧数据。这些数据可能仍然完整,但目前无法访问。 移动设备上的2个本地存储器 手机和平板电脑等移动设备依赖本地存储和WebSQL位置来提供存储机制。

    1.8K10
    领券