Я реализовал детектор жестов, чтобы узнать, когда пользователь перейдет в мой список (и когда появится последний элемент списка), чтобы я мог добавить больше данных в список. В списке есть пользовательский адаптер, который я создал. Каждая строка имеет несколько текстовых изображений в ней и кнопку изображения. Я использовал кнопку imagebutton (которая является стрелкой) с прослушивателем кликов в моем адаптере, чтобы открыть другое действие, связанное с нажатой строкой.Обнаружение прокрутки в Listview не работает для пользовательского адаптера Listview
Управление хочет, чтобы пользователь мог щелкнуть в любом месте строки, чтобы активировать его. Итак:
@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
View v = convertView;
final ViewHolder viewHolder;
.....
//viewHolder.ibShipmentDetails.setOnClickListener(new OnClickListener()
v.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view)
{
....
}
}
Но теперь мой детекторы не будут работать правильно. Иногда он реагирует, а потом работает правильно; перезапустите действие, снова он не работает.
Вот мой жест детектор:
class MyGestureDetector extends GestureDetector.SimpleOnGestureListener
{
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if((e1.getY() - e2.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY))
{
if(!loading && ((totalItemCount - visibleItemCount) <= firstVisibleItem))
{
if(allTabSelected)
{
allPageNo++;
}
else
{
openPageNo++;
}
new GetShipmentPreviews().execute(1);
}
}
}
И в моей деятельности:
gestureDetector = new GestureDetector(this, new MyGestureDetector());
gestureListener = new View.OnTouchListener()
{
public boolean onTouch(View v, MotionEvent event)
{
return gestureDetector.onTouchEvent(event);
}
};
listView.setOnTouchListener(gestureListener);
Что я должен сделать, чтобы сохранить v.setOnClickListener
и команда onFling() без изменений?
Просто попытался добавить LiniarLayout по всему ряду и установить OnClick на этом. Такая же проблема, работает ... иногда. – Sebek