2015-01-08 2 views
0

// дочерний вид GridView в методе getView(). Кажется, что необходимо реализовать пользовательский GridView, который будет обрабатывать весь свиток и другие операции касания его ребенка. Спасибо за любую помощь.GridView после прокрутки ACTION_UP onTouchListener ребенку не будет звонить

class ViewHolder implements View.OnTouchListener { 
    ImageView image; 
    TextView text; 
    int position; 
    RelativeLayout root; 

    public ViewHolder(View v, int position) { 
     this.image = (ImageView) v.findViewById(R.id.grid_image); 
     this.text = (TextView) v.findViewById(R.id.item_text); 
     this.root = (RelativeLayout) v.findViewById(R.id.root_layout); 
     this.position = position; 
     image.setOnTouchListener(this); 

    } 


    @Override 
    public boolean onTouch(View v, MotionEvent event) { 

     switch (event.getActionMasked()) { 
      case MotionEvent.ACTION_DOWN: 
       Log.e("DOWN", "YES"); 
       return true; 
      case MotionEvent.ACTION_MOVE: 

       break; 
      case MotionEvent.ACTION_UP: 
       Log.e("UP", "YES"); 
       break; 
     } 
     return true; 
    } 


} 

ответ

1

Это потому, что при прокрутке события касания перенаправляются в сетку. Когда это произойдет, вы увидите ACTION_CANCEL. Вы должны учитывать это.

+0

Да, я попытался использовать ACTION_CANCEL, но он каждый раз вызывает свиток GridView. Мне нужно сохранить прикосновение даже при прокрутке и вызвать ACTION_UP, если палец движется вверх. ACTION_CANCEL звонит в любом случае при завершении события касания (при прокрутке). Я знаю, что ScrollView перехватывает прикосновения его дочерних элементов (виды внутри Grid) и не возвращает Action Up on finish ... для ребенка. –

+0

Тогда я думаю, вам нужно отредактировать свой вопрос и быть БОЛЬШИМ яснее о том, что вам нужно. Ваш первоначальный вопрос делает его похожим на то, что вы не знаете об отмене. То, что вы действительно хотите, намного больше, и я не совсем уверен, что это такое. –

Смежные вопросы