您的位置:首页 > 其它

解决ListView的 setEmptyView无效的问题

2015-08-17 14:02 351 查看
话不多说,直接上代码
/**
* 设置ListView的EmptyView
* setEmptyView
* @author Administrator
* @param listview
* @param emptyView
* <p>网上对Api解释的非常清楚,将EmptyView添加到最外层的ViewGroup上。</p>
*/
public static void setEmptyView(ListView listview, View emptyView) {
FrameLayout emptyLayout;
if (listview.getEmptyView() == null) {
emptyLayout = new FrameLayout(listview.getContext());
emptyLayout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
emptyView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
emptyLayout.addView(emptyView);
emptyView.setVisibility(View.VISIBLE);
getParentView((ViewGroup) listview.getParent()).addView(emptyLayout);
listview.setEmptyView(emptyLayout);
} else {
emptyLayout = (FrameLayout) listview.getEmptyView();
emptyLayout.removeAllViews();
emptyLayout.setVisibility(View.VISIBLE);
emptyLayout.addView(emptyView);
}
}

private static ViewGroup getParentView(ViewGroup parent) {
ViewGroup tempVg = parent;
if (parent.getParent() != null && parent.getParent() instanceof ViewGroup) {
tempVg = (ViewGroup) parent.getParent();
getParentView(tempVg);
} else {
return tempVg;
}
return tempVg;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: