如何获取listview滚动条的精确位置android开发问答android开发

如何获取listview滚动条的精确位置android开发问答android开发,第1张

(1)获取这一条在新Cursor中的位置(posiition)

(2)获取这一条在更换Cursor后ListView中的位置。

(4)由于ListView的可滚动的属性,我们需要记录更换Cursor前可视的第一条item的索引(ListViewgetFirstVisiblePosition())

(3)区分FirstVisiblePosition是0和大于0的情况。由于header,也就是图中的Loading那一条在新数据出来后是会消失的。

(4)当FirstVisiblePosition为0时实际指向的是header,我们要保持位置不变的是header下面第一条(R)的位置。那么此时要设置FirstVisiblePosition为1

(5)当FirstVisiblePosition大于0时实际指向的就是item,但是我们需要设置FirstVisiblePosition为0。

(6)我们根据FirstVisiblePosition用ListViewgetChildAt(int position)函数获取对应的item的View,再根据ViewgetTop()函数获取到ListView顶部的距离Y。

这样ListViewsetSelectionFromTop(int position, int y)所需的两个参数 position 和 y就都有了。

注解:ListViewgetChildAt(int position), 这个position指的是在可视的item中的索引,跟cursor里的位置是大不一样的。可以看看ListViewgetChildCount()函数得到个数是小于或等于Cursor里的个数的(不考虑header的话)。虽然一共可能有20条数据,但是界面只能看到8条,那么这个ChildCount大约就是8了。另一方面, FirstVisiblePosition取出的是在总的条数中的索引,再将会消失的header考虑进来,所以就是 FirstVisiblePosition为0时要设为1,大于0时又要设为0。

假设 是一个ListView上的那个水平滚动条, 则--

listView1Scrollable = true;

ConsoleWriteLine(listView1ClientRectangle);

ConsoleWriteLine(listView1Size);

listView1Scrollable = false;

ConsoleWriteLine(listView1ClientRectangle);

ConsoleWriteLine(listView1Size);

C#(读做C-sharp)编程语言是由微软公司的Anders Hejlsberg和 Scott Willamette领导的开发小组专门为NET平台设计的语言,它可以使程序员移植到NET上。这种移植对于广大的程序员来说是比较容易的,因为C#从C,C++和Java发展而来,它采用了这三种语言最优秀的特点,并加入了它自己的特性。C#是事件驱动的,完全面向对象的可视化编程语言,我们可以使用集成开发环境来编写C#程序。使用IDE,程序员可以方便的建立,运行,测试和调试C#程序,这就将开发一个可用程序的时间减少到不用IDE开发时所用时间的一小部分。使用IDE迅速建立一个应用程序的过程称为快速反映开发。

以上就是关于如何获取listview滚动条的精确位置android开发问答android开发全部的内容,包括:如何获取listview滚动条的精确位置android开发问答android开发、C#后台怎么获取滚动条高度、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9723342.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存