Android 在Listview中设置可见性时出现问题&;基本适配器

Android 在Listview中设置可见性时出现问题&;基本适配器,android,listview,adapter,Android,Listview,Adapter,我正在制作一个自动签名列表视图。每次我打电话之前 mAdapter.notifyDataSetChanged(); 我用一个进度圈切换列表中的最新项目 /** * displays a progress banner instead of the last item. * @param reload boolean */ protected void showReloadView(boolean reload){ View it

我正在制作一个自动签名列表视图。每次我打电话之前

    mAdapter.notifyDataSetChanged();
我用一个进度圈切换列表中的最新项目

    /**
    * displays a progress banner instead of the last item.
    * @param reload boolean
    */
    protected void showReloadView(boolean reload){
         View item = mListView.getChildAt(onLastItem);
         //View item = mListView.getAdapter().getView(onLastItem, null, null);
         content = item.findViewById(id.itemContent);
         loading = item.findViewById(id.itemLoading);
         if(reload){
           content.setVisibility(View.GONE);
           loading.setVisibility(View.VISIBLE);
        }else{
           content.setVisibility(View.VISIBLE);
           loading.setVisibility(View.GONE);
   }
我这里的问题是,我正在将SDK中提到的视图作为EfficientAdapter进行回收。 因此,我的ListView对象当前包含的项不超过8项(因为没有更多可见项)

第一次运行是正常的,因为“onLastItem”是7(可见项-1),但是第二次运行

    ListView.getChildCount() 
只返回6个项目。那么为什么我的ListView越来越小?因为可见度,你走了? 我做错了吗

我也尝试过使用未注释的行。我的适配器知道列表的实际大小,我甚至可以获得视图。但是在这些视图上设置可见性没有效果

提前Thx

那么为什么我的ListView越来越小? 因为可见度,你走了

这是我的猜测,但您必须查看
ListView
的实现才能确定

FWIW,我采用了与之相反的方法--我将
ListView
单独保留,并使用一个装饰适配器来处理获取更多数据的操作

那么为什么我的ListView越来越小? 因为可见度,你走了

这是我的猜测,但您必须查看
ListView
的实现才能确定

FWIW,我采用了与之相反的方法--我不使用
列表视图
,而是使用一个装饰适配器来处理获取更多数据。

在观看之后,我解决了问题

由于Listview只包含可见视图,因此我将代码更改为:

View item = mListView.getChildAt(mListView.getChildCount()-1);
将视图保存到字段,更新数据集后,我可以切换回布局。 经过测试,效果完美

谢谢您抽出时间。

看了之后,我解决了这个问题

由于Listview只包含可见视图,因此我将代码更改为:

View item = mListView.getChildAt(mListView.getChildCount()-1);
将视图保存到字段,更新数据集后,我可以切换回布局。 经过测试,效果完美

谢谢你抽出时间