进度可见性在列表视图页脚中不起作用

Posted

技术标签:

【中文标题】进度可见性在列表视图页脚中不起作用【英文标题】:Progress visibility not working in list view footer 【发布时间】:2015-10-21 12:57:52 【问题描述】:

我在列表视图中使用分页,当用户向下滚动到列表视图末尾时,我在列表视图页脚中显示进度条(小)。

LayoutInflater inflater = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.list_footer, null);    
myListView.addFooter(view).

然后我将我的适配器设置如下

ProgressBar progressBar = (ProgressBar) getFooterView().findViewById(R.id.progressBar);
mAdapter = new MyAdapter(BaseActivity.getActivity(), 0, progressBar, myArrayList);
mList.setAdapter(mAdapter);

在我的适配器类中,我在 getView() 方法中设置进度条可见性,如下所示。

 if(position == MAX_RECORDS)
    
        progressBar.setVisibility(View.VISIBLE);
        // Some code goes here.
     else
        progressBar.setVisibility(View.GONE);

但是当列表没有数据要获取时,ProgressBar 不会消失。请帮帮我。

【问题讨论】:

我认为您使用此方法的最佳解决方案。 mListView.removeFooterView(v)。并删除页脚视图。 感谢您的解决方案,但这也不起作用。 尝试在适配器类的活动中设置接口调用,然后将可见性设置为可见... 【参考方案1】:

最初将progressBar设置为可见状态并使用相同的代码本身。

【讨论】:

【参考方案2】:

试试这个。这一行的改变会帮助你

ProgressBar progressBar = (ProgressBar)view.findViewById(R.id.progressBar);

而不是

ProgressBar progressBar = (ProgressBar) getFooterView().findViewById(R.id.progressBar);

【讨论】:

【参考方案3】:

试试:

if(position == MAX_RECORDS-1)

位置从 0 开始

更新

只是想在这里理解您的代码:

if(position == MAX_RECORDS-1) 
     
        progressBar.setVisibility(View.VISIBLE);
        // Some code goes here. 
    

当显示最后一行时,上面的块将被执行。由于之前对所有行都调用了 getview,并且希望您使用的是 convertview,因此不会再次执行 else 块。

最终结果是:对话框将无限期可见。

如果我是对的,您想在加载数据时显示对话框并在加载完成时隐藏它。有两种情况:

一次性获取数据 在显示最后一行时获取数据。

你能解释一下上面哪一个是真的吗?

【讨论】:

嘿@Kay 谢谢,我正在使用 MAX_RECORDS-1 已经忘记发帖了,你对这个问题还有其他想法吗? 在我的情况下,最后一个是正确的,我在显示最后一行时获取数据 因此,如果您每次调用获取 20 条记录,那么 max_record 应该是 20,然后是 40,然后是 60,依此类推 如果 max_record 正在更新,则意味着当没有数据可以获取时,进度不会消失。示例:如果您提取 80-100 条记录并且这是最后一条记录,那么(位置 == 99)上的进度对话框将可见,并且不会再有 getview 调用,因此永远不会不可见。 要克服同样的问题,您需要在服务器上拥有实际最大数据计数,即在我上面的示例中为 100。或者当服务器不再返回要获取的数据时,隐藏进度

以上是关于进度可见性在列表视图页脚中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 3 - 页脚中的链接在移动版本上不起作用

网站的响应性在 iphone 10 或任何 iOS 中不起作用

jQuery 验证插件在 WordPress 中不起作用

为啥自动完成在列表视图中不起作用

下拉列表在 asp.net 的移动视图中不起作用

Onclicklistener 在片段列表视图中不起作用