我正在使用Android APi 3。 我构建了一个包含两个控件的容器控件:另一个容器(布局)和一个ListView。
在主容器控件中,我重写onLayout函数,根据列表控件(第二个子视图)中的项目将子视图的可见性更改为GONE / VISIBLE。
问题是,当我使用GONE然后触发一个事件并将其设置为VISIBLE时,第一个子控件显示但是ListView没有显示该项 - ListView显然有一个项目。
也许onLayout可能不是最后一个调用子控件的setVisibility的地方。如果没有,最好的地方是什么?
对于我的问题,使用INVISIBLE修复问题而不是GONE。
下面是代码: @覆盖 protected void onLayout(boolean changed,int l,int t,int r,int b){
/* if there's no data to display, hide headerView */
if (listView.getAdapter() == null || listView.getAdapter().getCount() == 0)
headerView.setVisibility(INVISIBLE); // if set to GONE, it won't display the listView when there's only one item or unless it's refreshed 2nd time.
else
headerView.setVisibility(VISIBLE);
super.onLayout(changed, l, t, r, b);
}
有什么想法吗?
答案 0 :(得分:0)
可能你需要使用yourAdapter.notifyDataSetChanged();
刷新整个listView
你做到了吗??