2013-11-28 7 views
0

В следующем проекте here is exampleБруса прокрутки во время .notifyDataSetChanged()

Я использую с .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();}}}} 

НО когда я хочу прокрутки вверх используя палец, новый программно добавленный элемент прокручивает listview вниз.

Как я могу установить .post(new Runnable() когда я касаюсь экрана и используя палец для прокрутки? или что я могу сделать, чтобы не пропустить прокрутку списка, когда я касаюсь экрана?

ответ

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; 
    } 
    }); 
Смежные вопросы