Всем привет
<ScrollView>
<HorizontalScrollView>
<TableLayout>
</TableLayout>
</HorizontalScrollView>
</ScrollView>
Есть вот такой код
MainActivity
for (int i = 0; i < 10; i++) {
TableRow tableRow = new TableRow(this);
for (int j = 0; j < 10; j++) {
ImageView img = new ImageView(this);
....
tableRow.addView(img);
}
tableLayout.addView(tableRow);
}
Так же я переопределяю метод в Activity
@Override
public boolean onTouchEvent(MotionEvent event) {
float curX, curY;
switch (event.getAction()) {
case ACTION_DOWN:
mx = event.getX();
my = event.getY();
break;
case MotionEvent.ACTION_MOVE:
curX = event.getX();
curY = event.getY();
vScroll.scrollBy((int) (mx - curX), (int) (my - curY));
hScroll.scrollBy((int) (mx - curX), (int) (my - curY));
mx = curX;
my = curY;
break;
case MotionEvent.ACTION_UP:
curX = event.getX();
curY = event.getY();
vScroll.scrollBy((int) (mx - curX), (int) (my - curY));
hScroll.scrollBy((int) (mx - curX), (int) (my - curY));
break;
}
return true;
}
Так я реализовал вертикальный и горизонтальный скрол и все работает хорошо если элементы не вмещаются на экран то появляются скролы и могу листать и верх и вниз и в любом направлении.
Но тут появляется проблема, если я на ImageView вешаю событие клик,
gifImageView.setOnClickListener
то при скроле отбрасывает в разные места то есть плавного нет скрола как без события клик (если его не ставить)
я так понимаю проблема в OnTouchListener самого ImageView, если создать свою view от ImageView и переопределить метод вот так onTouchEvent
@Override
public boolean onTouchEvent(MotionEvent ev) {
return false;
}
то скрол работает как надо но click не работает, как можно решить ? я получается в tableLayout добавляю 100 динамических ImageView и когда я ставлю событие клик я чувствую что система подвисает что ли, без клика все плавно работает но нужен клик, чтобы понять по какой картинке кликнули
как вообще такое решить можно ?
Спасибо