在.notifyDataSetChanged()期间无法滚动

时间:2013-11-28 14:27:45

标签: post scroll runnable notifydatasetchanged

在以下项目here is example

我正在使用.notifyDataSetChanged();此方法.post(new Runnable(){在添加新项目后向下滚动

 private void addItemsToList() {  
           int randomVal = MIN + (int) (Math.random() * ((MAX - MIN) + 1));  
           mItems.add(String.valueOf(randomVal));  
           mListAdapter.notifyDataSetChanged(); 

           mCompleteListView.post(new Runnable(){
              public void run() {
                  mCompleteListView.setSelection(mCompleteListView.getCount() - 1);
              }}); 
      }  


public class ReceiverThread extends Thread {
     String line;
     String name;

     ReceiverThread(String name, String line){
         this.line=line;
         this.name=name;

     }

     public void run() { 
     OpenStream.this.runOnUiThread(new Runnable() {

                public void run() {
                    addItemsToList();}}}}

但是当我想用手指向上滚动时,新的以编程方式添加的项目滚动列表视图向下。

当我触摸屏幕并使用手指滚动时,如何设置.post(new Runnable()?或者当我触摸屏幕时,我该怎么办才能让listview向下滚动?

1 个答案:

答案 0 :(得分:1)

我已添加此代码,现在当我触摸listview时没有向下滚动

 mCompleteListView.setOnTouchListener(new OnTouchListener() { 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 

    if (event.getAction() == MotionEvent.ACTION_UP) { 
    flag = true; 
    Log.e(MainActivity.tag,"onTouch "+flag); 
    }else{ 
    flag = false; 
    Log.e(MainActivity.tag,"onTouch "+flag); 
    } 

    return false; 
    } 
    });