Android Listview

淡淡的烟草味﹌ 2022-07-28 06:20 316阅读 0赞

listview相关设置

  1. android:divider="@null" 两个上下相邻item之间的分割置空
  2. android:dividerHeight 这个属性是上下相邻的item间的距离
  3. android:divider="#fffff" 分割线颜色
  4. android:dividerHeight="1dp" 分割线高度

Listview和Scrollview冲突问题
在用到Scrollview中嵌套listview时,listview只能显示一个item的问题
原文网址:
http://blog.csdn.net/wulianghuan/article/details/8627958

  1. public static void setListViewHeightBasedOnChildren(ListView listView) {
  2. ListAdapter listAdapter = listView.getAdapter();
  3. if(listAdapter == null) {
  4. return;
  5. }
  6. int totalHeight = 0;
  7. for(int i = 0, len = listAdapter.getCount(); i < len; i++) {
  8. View listItem = listAdapter.getView(i, null, listView);
  9. listItem.measure(0, 0);
  10. totalHeight += listItem.getMeasuredHeight();
  11. }
  12. ViewGroup.LayoutParams params = listView.getLayoutParams();
  13. params.height = totalHeight
  14. + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
  15. listView.setLayoutParams(params);
  16. }

Scrollview显示不在顶端的问题

  1. listview.setFocusable(false);

Scrollview中有其他滑动控件时也一样

通过OnScrollListener实现上拉刷新,下拉加载

  1. listView.setOnScrollListener(new AbsListView.OnScrollListener() {
  2. @Override
  3. public void onScrollStateChanged(AbsListView view, int scrollState) {
  4. /*
  5. * scrollState值:
  6. * 当屏幕停止滚动时为SCROLL_STATE_IDLE = 0;
  7. * 当屏幕滚动且用户使用的触碰或手指还在屏幕上时为SCROLL_STATE_TOUCH_SCROLL = 1;
  8. * 由于用户的操作,屏幕产生惯性滑动时为SCROLL_STATE_FLING = 2
  9. */
  10. // 当滚动停止且滚动的总数等于数据的总数,上拉加载
  11. if (lastItem == count && scrollState == SCROLL_STATE_IDLE) {
  12. //此处进行加载数据的操作
  13. add();
  14. return;
  15. }
  16. // 当往下拉操作
  17. if (firstItem == 0 && scrollState == SCROLL_STATE_IDLE) {
  18. adda();
  19. }
  20. }
  21. @Override
  22. public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
  23. //firstVisibleItem 表示屏幕中第一条数据在adapter中的位置
  24. //visibleItemCount 表示屏幕中最后一条数据在adapter中的位置
  25. //totalItemCount 表示adapter中的总条数
  26. lastItem = firstVisibleItem + visibleItemCount;// 计算出lastitem的值
  27. firstItem = firstVisibleItem;// 同样拿出lastitem的值
  28. }
  29. });

这个加载方案显得略有呆板,用户只要滑动到相应位置就会自动加载,没有选择的权利,而且没有动画效果,所以要看情况进行使用

发表评论

表情:
评论列表 (有 0 条评论,316人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Android ListView

    ListView作为android的经常使用的控件,在使用时,经常会忘记一些使用要点,这里记录一下一些使用过程中的需求,以便后面使用查询: 设置 监听 使用