开发中遇到的问题记录以下:
页面是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就可以正常显示了;
网友评论