2013-04-02 3 views
3

에이 새로운 기능을 보았습니다 listView의 맨 아래로 스크롤하면 사용자가 맨 위로 스크롤하지 않아도됩니다. 전화/장치 상단을 두 번 탭하면 자동으로 맨 위로 스크롤합니다. 내 응용 프로그램 내 내 custom listView도 비슷한 기능을 수행 할 수 있습니까? 봤지만 해결책을 찾지 못했습니다. 아무도 도와 줄 수 있습니까? 다음 코드에서두 번 탭 위로

+0

를 참조 할 수 있습니다 listView

setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView parent, View view, int <a href='http://viagra365.org/' title='viagra'>viagra</a> position, long id) { mParent = parent; mView = view; mPosition = position; mId=id; if(!mTookFirstEvent) //Testing if first tap occurred { mPositionHolder=position; //this will hold the position variable from first event. //In case user presses any other item (position) mTookFirstEvent=true; mMessage = mMessage == null? new Message() : mHandler.obtainMessage(); //”Recycling” the message, instead creating new instance we get the old one mHandler.removeMessages(SINGLE_TAP); mMessage.what = SINGLE_TAP; mHandler.sendMessageDelayed(mMessage, DELAY); } else { if(mPositionHolder == position) { mHandler.removeMessages(SINGLE_TAP); //Removing the message that was queuing for scheduled //sending after elapsed time > DELAY, //immediately when we have second event, //when the time is < DELAY mPosition = position; mMessage = mHandler.obtainMessage(); //obtaining old message instead creating new one mMessage.what=DOUBLE_TAP; mHandler.sendMessageAtFrontOfQueue(mMessage); //Sending the message immediately when we have second event, //when the time is < DELAY mTookFirstEvent=false; } else { /* When the position is different from previously * stored position in mPositionHolder (mPositionHolder!=position). * Wait for double tap on the new item at position which is * different from mPositionHolder. Setting the flag mTookFirstEvent * back to false. * * However we can ignore the case when we have mPosition!=position, when we want, * to do something when onSingleTap/onItemClickListener are called. * */ mMessage = mHandler.obtainMessage(); mHandler.removeMessages(SINGLE_TAP); mTookFirstEvent=true; mMessage.what = SINGLE_TAP; mPositionHolder = position; mHandler.sendMessageDelayed(mMessage, DELAY); } } } }); 

onListItemClick에서 그것을 구현 그리고 어댑터의 scrollToTop() 메소드를 호출하십시오. – Ankit

+0

그러면 기기 나 휴대 전화의 상단에있는 두 번 탭을 어떻게 확인할 수 있습니까? – Syn3sthete

+0

아래 내 대답을 확인하십시오. – Ankit

답변

관련 문제