1
在我的活動中,我有一個imageView(在頂部)和textView(在底部)。使用這兩個視圖我顯示一個圖像及其相應的描述。我已經使用'SimpleOnGestureListener'實現了fling,這樣用戶就可以瀏覽不同的圖像及其相應的描述(每次投擲時,我都會加載不同的圖像並顯示給用戶)。onClick阻止onFling
現在,當我爲ImageView添加onClickListener時(我需要檢測onClick,以便可以顯示帶有圖像描述的Toast),問題就開始了。但onClick似乎阻止了投擲事件。我如何檢測投擲。
是否已經通過這個論壇下面的問題(和其他幾個)不見了..
android - giving onTouch priority over onClick
Android onClick blocking onFling
但還是沒能找出解決方案。
下面給出的是代碼
public class MainActivity extends Activity{
ImageView m_imageView;
String[] m_imageNames = { "img1__", "img2__", "img2__"};
int m_index = 0;
Resources m_res;
Drawable m_drawable;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.v("INFO", "Inside oncreate");
m_imageView = (ImageView)findViewById(R.id.imageView1);
m_res = getResources();
int imageId = m_res.getIdentifier(m_imageNames[m_index], "drawable", getPackageName());
Drawable drawable = m_res.getDrawable(imageId);
m_imageView.setImageDrawable(drawable);
m_imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.v("INFO", "Inside onClick");
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.v("INFO", "onTouchEvent detected");
return gestureDetector.onTouchEvent(event);
}
SimpleOnGestureListener simpleOnGestureListener
= new SimpleOnGestureListener(){
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
//Fling code goes here
}
};
GestureDetector gestureDetector = new GestureDetector(null, SimpleOnGestureListener);
}
我不確定你從代碼中拿出了什麼,但是你有一些嚴重的支架平衡問題正在發生。你能解決這些問題並更新你的代碼嗎? – Eric
對不起,哥們...這樣做(這變得非常可憐......當我把代碼形式的eclipse複製到這裏時).. – Raj