ListView多屏数据时footer悬停底部

本文介绍如何实现ListView在数据量不足一屏时footer跟随滚动,多于一屏时footer固定在底部的效果。通过分析和代码示例,讲解了在ListView滚动监听中判断数据量并调整footer状态的方法。
摘要由CSDN通过智能技术生成

1. 效果图

image

2. 需求

  1. 当数据量比较少不足一屏的时候,footer跟随数据库
  2. 当数据量多于一屏的时候,footer固定在底部

3. 分析

  1. 我们可以新建一个View作为footer,同时将这个View复制一份固定在底部,初始设置为invisible
  2. 数据量小的时候,footer默认就是跟随着ListView的,将底部View设置为invisible。数据量多的时候,将底部的View设置为visible显示出来,默认就会覆盖掉footer。
  3. 在ListView的scroll监听中对数据量的大小进行判断。如果可见项小于总项目,那么可以肯定的是数据量是多于一屏的。
  4. 如果可见项等于总项目,那么要么是不足一屏,要么最后一项footer已经部分展示在屏幕上了。可以根据footer的top值和底部View的top值进行判断。
  5. 如果footer的top值比底部View的top值小,则说明数据量不足一屏;反之则否。
  6. 加入了header或者footer后,可见项与总项目是会包含header和footer的。

4. 代码

共用xml文件,作为footer和底部View的

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#C3C3C3"
    android:orientation="vertical">

    <View
        android:layout_width="match_parent"
        android:layout_height="80dp" />


</LinearLayout>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值