可能重复:
Android:使用notifyDataSetChanged和getLastVisiblePosition - 当listView实际更新时?
我有一个简单的ListView只有几个条目.根据设备大小和方向,ListView需要滚动或不滚动.
我在屏幕上还有一张照片,这不是必需的.如果ListView没有足够的空间而没有滚动,我想删除图片.
当我在活动的onCreate中填充ListView时,getLastVisiblePosition()尚未生效,它返回-1.因此,我无法比较最后一个可见项目与列表计数.
int lastVisiblePos = listView.getLastVisiblePosition(); //返回-1
(如果我稍后点击某个按钮重新检查,则该值是正确的.)
使用onScrollingListener为时已晚,因为图片不应该首先显示.
我正在开发API级别10.
有什么建议?
Sam*_*Sam 22
getLastVisiblePosition()与getCount()Runnable进行比较,看看整个ListView是否在绘制后立即适合屏幕.您还应该检查最后一个可见行是否完全适合屏幕.
创建Runnable:
ListView listView;
Runnable fitsOnScreen = new Runnable() {
@Override
public void run() {
int last = listView.getLastVisiblePosition();
if(last == listView.getCount() - 1 && listView.getChildAt(last).getBottom() <= listView.getHeight()) {
// It fits!
}
else {
// It doesn't fit...
}
}
};
Run Code Online (Sandbox Code Playgroud)
在onCreate()ListView的Handler中将Runnable排队:
listView.post(fitsOnScreen);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7156 次 |
| 最近记录: |