listview无数据时,headview高度过长(超过一屏幕)显示不全怎么办?

开发中遇到的问题记录以下:

页面是ListView 添加了一个header和一个footer;
当ListView数据为空时,滑动后Header显示不全;

个人解决方式:
1,数据返回为空时,添加一条空数据;

            if (data == null || !data.isSuccess() || data.getData().size() <= 0) {
                listView.clear();
                listView.add(new Data());
                discoverLvAdapter.notifyDataSetChanged();
                return;
            }         
            listView.clear();
            listView.addAll(data.getData());
            discoverLvAdapter.notifyDataSetChanged();
        }
}

2.ListView条目布局中添加一个高度和宽度为0的View

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical">   <ImageView
    android:id="@+id/iv_disc_lv_item"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="20dp"
    android:paddingRight="20dp"
    android:scaleType="fitXY"/>

<ImageView
    android:id="@+id/iv_disc_lv_empty_item"
    android:layout_width="0dp"
    android:layout_height="0dp" /></LinearLayout>

3.在Adapter中判断该数据为空数据时,隐藏正常View,否则显示正常View;

@Override
public void showData(int position, ViewHolder viewHolder, ActivityBanner data) {
    DisViewHolder holder = (DisViewHolder) viewHolder;
    if (TextUtils.isEmpty(data.getImageUrl())) {
        holder.ivDiscLvItem.setVisibility(View.GONE);
    } else {
        holder.ivDiscLvItem.setVisibility(View.VISIBLE);
        GlideUtils.loadRoundImage(25, mContext, data.getImageUrl(), holder.ivDiscLvItem, UIUtils.getDrawable(R.drawable.logo_zwf_nor), UIUtils.getDrawable(R.drawable.logo_zwf_nor));
    }
    holder.ivDiscLvEmptyItem.setImageResource(0);
}

这样ListView Header就可以正常显示了;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,292评论 25 709
  • 前言 本文从源码角度出发学习listview,主要分析首次RecycleBin的组成,layout的过程,滑动过程...
    chefish阅读 5,275评论 0 6
  • 简单应用场景 在子线程向主线程发送消息,一般刷新主线程的UI 主线程向子线程发送消息, 一般为启动异步阻塞任务 类...
    十思叶阅读 1,950评论 0 2
  • 自控力去年读过,没有留下多少印象,希望这次重读会有更多的收获。 .所谓意志力,就是控制自己的注意力,情绪和欲望的能...
    May74阅读 1,310评论 0 2
  • 文章原网址点击>>>>>>>>HYBNetworking 概述 对于开发人员来说,学习网络层知识是必备的,任何一款...
    Amok校长阅读 7,003评论 1 3

友情链接更多精彩内容