嘿,我做了一個自定義視圖組擴展相對佈局和重寫onTouchEvent(),並始終在onTouchEvent()返回true。我將這個自定義視圖組作爲我的listview的項目佈局。我還爲listview添加onItemClick監聽器。但我無法接收我的listview的onItemClick事件!有人能幫助我嗎?Android Listview不會收到onItemClick與自定義ViewGroup
非常感謝!
嘿,我做了一個自定義視圖組擴展相對佈局和重寫onTouchEvent(),並始終在onTouchEvent()返回true。我將這個自定義視圖組作爲我的listview的項目佈局。我還爲listview添加onItemClick監聽器。但我無法接收我的listview的onItemClick事件!有人能幫助我嗎?Android Listview不會收到onItemClick與自定義ViewGroup
非常感謝!
如果您在onTouchEvent()
中返回true,則會處理該事件,因此不會冒泡到ListView。嘗試返回false。
只使用onitemClick事件就夠我想只要你的問題而言
不,我應該在MotionEvent down和MotionEvent時做一些工作。 – DarkNeo
粘貼代碼 – Anirudh
@覆蓋 公共布爾的onTouchEvent(MotionEvent事件){ 開關(event.getAction()){ 情況MotionEvent.ACTION_DOWN: doMyWork(); break; case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: endMywork(); break; 默認值: break; } return super.onTouchEvent(event); } – DarkNeo
只是difine onitemclick在適配器類getView(...),我認爲它會爲你
公共查看getView工作(最終詮釋的立場,觀點convertView,ViewGroup以及母公司){
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.list_row, null);
vi.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
}
});
我認爲這可以解決這個問題。謝謝! – DarkNeo
的問題是,你總是從你的ViewGroup的onTouchEvent(MotionEvent)
方法返回true
。這意味着你的相對佈局負責處理這個觸摸事件。 閱讀android文檔以獲取更多信息http://developer.android.com/training/gestures/viewgroup.html
如果我返回false,那麼以後我無法在視圖組中獲得其他MotionEvent。如何解決這個問題?謝謝! – DarkNeo
如果你返回'super.onTouchEvent()',怎麼樣? – Jens
super.onTounchEvent()將在這種情況下返回false。視圖組不會再收到ACTION_UP事件。 – DarkNeo