Android中ListView.getCount()与ListView.getChildCount()区别和OnScrollListener()各个参数的区别

istView.getCount()(实际上是 AdapterView.getCount()) 返回的是其 Adapter.getCount() 返回的值。也就是“所包含的 Item 总个数”。

  ListView.getChildCount()(ViewGroup.getChildCount) 返回的是显示层面上的“所包含的子 View 个数”。

  二者有什么不同?当 ListView 中的 Item 比较少无需滚动即可全部显示时,二者是等价的;当 Item 个数较多需要滚动才能浏览全部的话, getChildCount() < getCount() 其中 getChildCount() 返回的是当前可见的 Item 个数。

  Java代码

  listView.setOnScrollListener(new OnScrollListener() {

  @Override

  public void onScrollStateChanged(AbsListView view, int scrollState) {

  // TODO Auto-generated method stub

  }

  @Override

  public void onScroll(AbsListView view, int firstVisibleItem,

  int visibleItemCount, int totalItemCount) {

  // TODO Auto-generated method stub

  /**firstVisibleItem表示在现时屏幕第一个ListItem(部分显示的ListItem也算)

  在整个ListView的位置(下标从0开始)**/

  Log.i("firstVisibleItem", String.valueOf(firstVisibleItem));

  /**visibleItemCount表示在现时屏幕可以见到的ListItem(部分显示的ListItem也算)总数**/

  Log.i("visibleItemCount", String.valueOf(visibleItemCount));

  /**totalItemCount表示ListView的ListItem总数**/

  Log.i("totalItemCount", String.valueOf(totalItemCount));

  /**listView.getFirstVisiblePosition()表示在现时屏幕第一个ListItem(第一个ListItem部分显示也算)

  * 在整个ListView的位置(下标从0开始)**/

  Log.i("firstPosition", String.valueOf(listView.getFirstVisiblePosition()));

  /**listView.getLastVisiblePosition()表示在现时屏幕最后一个ListItem(最后ListItem要完全显示出来才算)

  * 在整个ListView的位置(下标从0开始)**/

  Log.i("lasPosition", String.valueOf(listView.getLastVisiblePosition()));

  }

  });

时间: 2024-10-09 17:39:05

Android中ListView.getCount()与ListView.getChildCount()区别和OnScrollListener()各个参数的区别的相关文章

Android中焦点移到ListView的有关问题

一个解决办法 这不是一个根本解决的方法:写一个新的class,继承ListView,覆盖onFocusChanged. @Override protected void onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect) { super.onFocusChanged(gainFocus, direction, previouslyFocusedRect); if (gainFocus &&

Android中Path类的lineTo方法和quadTo方法画线的区别

当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的lineTo和quadTo方法实现的绘制线路形式也是不一样的,下面就以代码的实现来直观的探究这两个方法的功能实现区别: 1. Path--->quadTo(float x1, float y1, float x2, float y2): 该方法的实现是当我们不仅仅是画一条线甚至是画弧线时会形成平滑的曲线,该曲线又称为"贝塞尔曲线"(Bezier curve),其中,x1,y1为控制点的坐标值,x2,y2为终

Android中度量单位px、dip、dp、sp、pt的区别 像素及屏幕密度决定显示效果的美观

1.概述 过去,程序员通常以像素为单位设计计算机用户界面.例如:图片大小为80×32像素.这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小.在有些情况下,用户界面可能会小到难以看清内容.由此我们采用与分辨率无关的度量单位来开发程序就能够解决这个问题.Android应用开发支持不同的度量单位. 2.度量单位含义 dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了

[转]android中OnTouch和OnClick、 imagebutton的src和background有什么区别

1.OnTouch和OnClick有何区别? 专业回答 1.onClick就传入一个View对象,而 onTouch要传入一个View 对象和 MotionEvent的对象2.onTouch对控件的操作比onCilck更丰富,比如判断触摸的状态(比如按下,或者放开),和得到点击的位置等等3.当对一个控件触摸的时候touch 先调用, onclick是 对 touch 的一个扩展实现 2.imagebutton的src和background有什么区别呢? 专业回答 2013-07-23 09:43

Android中监听ListView滑动到底部

Android中的应用就是ListView中向下滑动加载更多的功能,不要再onScroll方法中进行判断,那样当滑动到底部的时候,可能我们需要触发点什么事件,比如加载更多.隐藏某个控件等等. 第一种方法是直接滑动到底部就触发 listview.setOnScrollListener(new OnScrollListener(){       @Override       public void onScrollStateChanged(AbsListView view, int scrollS

Android中Activity中使用ListView与ListActivity中使用ListView的区别与联系

Android中Activity与ListActivity使用ListView的区别与联系: 1. Activity的使用: (1).概念: 每一个activity对应于一个显示界面,每一个activity都是独占整个屏幕的. (2).步骤: A:xml布局中,ListView标签id可以任意取值如: <ListView android:id="@+id/lv_show" android:layout_width="match_parent" android:

Android中使用ListView实现分页刷新(线程休眠模拟)

当要显示的数据过多时,为了更好的提升用户感知,在很多APP中都会使用分页刷新显示,比如浏览新闻,向下滑动到当前ListView的最后一条信息(item)时,会提示刷新加载,然后加载更新后的内容.此过程大致分以下几步: 1.当前Activity implements OnScallListenner: 2.实现接口的方法: 3.ListView注册滚动监听: 4. Adapter(自定义或者安卓自带)为每个item填充数据: 5.获得第二页以后的数据后,adater增加数据并刷新notifyDat

Android中ListView分页加载数据

熟悉Android的朋友们都知道,不管是微博客户端还是新闻客户端,都离不开列表组件,可以说列表组件是Android数据展现方面最重要的组件,我们今天就要讲一讲列表组件ListView加载数据的相关内容.通常来说,一个应用在展现大量数据时,不会将全部的可用数据都呈现给用户,因为这不管对于服务端还是客户端来说都是不小的压力,因此,很多应用都是采用分批次加载的形式来获取用户所需的数据.比如:微博客户端可能会在用户滑动至列表底端时自动加载下一页数据,也可能在底部放置一个“加载更多”按钮,用户点击后,加载

Android中ListView分页加载数据-转

Android应用开发中,采用ListView组件来展示数据是很常用的功能,当一个应用要展现很多的数据时,一般情况下都不会把所有的数据一次就展示出来,而是通过分页的形式来展示数据,个人觉得这样会有更好的用户体验.因此,很多应用都是采用分批次加载的形式来获取用户所需的数据.例如:微博客户端可能会在用户滑动至列表底端时自动加载下一页数据,也可能在底部放置一个"查看更多"按钮,用户点击后,加载下一页数据. 下面通过一个Demo来展示ListView功能如何实现:该Demo通过在ListVie