2013-03-15 75 views
3

我在我的Android应用程序中使用PullToRefresh。目前为止工作正常。我对着护滚动位置刷新

的问题是,当我从TOP新行“发行刷新”下载新的x行推动现有行和从0位置开始很是烦人的用户。我想要的是,在下载新的行列表后,应该保持在那里,让用户放弃查看新的行集。

任何想法我怎么能做到这一点?

回答

11

这是我用

//Get old position before updating adapter 
final int old_pos = mListView.getRefreshableView().getFirstVisiblePosition()+1; 
//Set Adapter 
mListView.setAdapter(mListAdapter); 

//Set the list to old postion 
//mListView.getRefreshableView().setSelection(old_pos); 
mListAdapter.notifyDataSetChanged(); 
mListView.onRefreshComplete(); 

mListView.post(new Runnable() { 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      mListView.getRefreshableView().setSelection(old_pos); 
     } 
    }); 

也检查: Maintain/Save/Restore scroll position when returning to a ListView

+0

都getFirstVisiblePosition(),并为setSelection()不可用,如果我们使用PullToRefreshListView的ListView。 – user2095470 2013-03-15 07:26:02

+0

另外,根据我的理解,如果我从TOP拉数据然后fristVisiblePosition()应该始终为零是不是正确的? – user2095470 2013-03-15 07:30:35

+0

我已经更新了我的答案,检查它我已经添加了getRefreshableView()它将具有两种方法,并且如果您从顶部拉动,则应该在顶部添加行并从底部拉动。是的顶部将从顶部拉 – Naveen 2013-03-15 07:43:10