使用手势可以很好解决这个问题
package com.kohler.launcher.view; import com.kohler.launcher.R; import com.library.util.LogUtil; import android.content.Context; import android.gesture.GestureOverlayView; import android.util.AttributeSet; import android.view.GestureDetector; import android.view.GestureDetector.OnGestureListener; import android.view.MotionEvent; import android.widget.ListView; public class CalendarListView extends ListView implements OnGestureListener { public interface LongOnClickCallback { public void onLongOnClick(); public void onClick(); } private LongOnClickCallback callback; public void setCallback(LongOnClickCallback callback) { this.callback = callback; } public CalendarListView(Context context) { super(context); init(); } public CalendarListView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public CalendarListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } private void init() { detector = new GestureDetector(getContext(), this); } private GestureDetector detector; @Override public boolean dispatchTouchEvent(MotionEvent ev) { detector.onTouchEvent(ev); return super.dispatchTouchEvent(ev); } @Override public boolean onDown(MotionEvent e) { return false; } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return false; } @Override public void onLongPress(MotionEvent e) { // LogUtil.e(" CalendarListView 长按事件"); //长按模式 if (callback != null) { callback.onLongOnClick(); } } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { // LogUtil.e(" CalendarListView onScroll"); return false; } @Override public void onShowPress(MotionEvent e) { } @Override public boolean onSingleTapUp(MotionEvent e) { LogUtil.e(" CalendarListView 点击事件"); if (callback != null) { callback.onClick(); }O return false; } }
點擊查看更多內容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優(yōu)質文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦