- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在设置自定义 ListView。
下拉刷新功能直接来自 https://github.com/chrisbanes/Android-PullToRefresh
ListView 显示图像,所以我创建了一个自定义适配器:
class mAdapter extends BaseAdapter{
public mAdapter(Context context){
// nothing to do
}
@Override
public int getCount() {
return mValues.size();
}
@Override
public Object getItem(int position) {
return mValues.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public boolean areAllItemsEnabled()
{
return false;
}
@Override
public boolean isEnabled(int position)
{
return false;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if(v == null){
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.list_item, null);
}
ImageView iv = (ImageView) v.findViewById(R.id.imageView);
if(iv != null){
displayImageInView(iv);
iv.setClickable(true);
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "ImageView", Toast.LENGTH_SHORT).show();
}
});
}
return v;
}
}
在 onCreate() 中,我获取 listView 并分配适配器:
mListView = (PullToRefreshListView) findViewById(R.id.listView);
mListView.setAdapter(new mAdapter(context));
之后我将图像添加到 mValues(从网络加载图像的 url)并在适配器上调用 notifiyDataSetChanged。
在 mListView.onRefresh() 中,我将图像添加到 mValues。
这对于添加第一张图像,甚至是第一组图像(在调用 mAdapter.notifyDataSetChanged() 之前)非常顺利。刷新指示器按预期显示和隐藏。
当我尝试在此之后添加另一个图像(或一堆)时,奇怪的事情开始发生。
刷新指示器显示,图像显示在 ListView 中。
但是:在那之后刷新指示器再也不会隐藏了。 “onRefreshComplete()”被调用,但第二次似乎无法正常工作。
UI 线程没有阻塞,所以操作仍然是可能的。如果我删除mValues中的所有项目,通知适配器并再次拉动刷新,正确添加图像,并且正确隐藏刷新指示器。
结论:只有在刷新前列表为空时,下拉刷新才会正确隐藏。
我真的不知道去哪里寻找这个奇怪错误的解决方案。
也许熟悉 Chirs Banes 的 Pull-To-Refresh 库的人可以帮助我。
谢谢!
最佳答案
我只是自己想出来的-.-
对于任何感兴趣的人:
您必须从 UI 线程设置 onRefreshComplete。使用处理程序从 onRefresh() 内部发布它。 <- 顺便说一句,它在一个单独的线程上运行。
祝你有美好的一天。
关于android - 带有自定义适配器错误的 Chris Banes PullToRefreshListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17516288/
我使用 PullToRefreshListView 在拉动 ListView 时提供数据重新加载。 但我的问题是,刷新后,布局在 ListView 顶部留下了一个空间。见下图: 我想删除顶部的空格。我
我有一个 PullToRefreshListView - https://github.com/chrisbanes/Android-PullToRefresh 我需要长按一下。我的代码: pullT
我正在尝试使用 PullToRefreshListView 而不是我的标准 ListView,但是作为初学者,它对我不起作用,listView 使用适配器并将 xml 项目文件膨胀到 ListView
我想在我已经开发的应用程序中使用 Pull-To-Refresh 库,源代码是 here . 我在 Android 2.3.5 上运行启动器示例。 问题是当我们将 PullToRefreshListV
我给你一些提示链接: https://github.com/twotoasters/jazzylistview https://play.google.com/store/apps/details?i
我正在使用 pulltorefreshlistview 如何确定它的 onitemclick,我使用的当前代码没有给我正确的位置。 谢谢 最佳答案 正如评论中已经指出的那样:您可能正在点击屏幕上的第一
我正在设置自定义 ListView。 下拉刷新功能直接来自 https://github.com/chrisbanes/Android-PullToRefresh ListView 显示图像,所以我创
我正在使用以下代码:- @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInst
我想添加一个自定义 View 作为 PullToRefreshListView 的 header 。因为,我们有 public void addHeaderView (View v) 来设置 List
我已经实现了 johan 中的 PullToRefreshListView该应用程序在除新版 Jelly Bean 之外的所有其他 Android 版本上都能正常运行。有谁知道这可能是什么原因,或者是
我是一名优秀的程序员,十分优秀!