OnTouch到其他视图比第一个触及Android的视图

时间:2014-11-28 13:47:58

标签: android android-layout

enter image description here

在这种情况下,我试图使我的侧面菜单由textviews组成,可以互动。 完成像onClick这样简单的事情是没有问题的。但是我希望用户能够从示例中拖动:1到9.然后应用程序会注意到拖动的内容和停止的位置。

我遇到的一个大问题是,当我开始触摸其中一个数字并将手指放在屏幕上时。 touchevent只会对我触及的第一个号码作出反应。无论我在哪里拖我的手指。所以这对我来说是个大问题。我试过添加一个onHoverListener。但那个人根本没有反应

  
    

protected void setupFastScrollList(){         LinearLayout linearLayout;         linearLayout =(LinearLayout)findViewById(R.id.history_side_index);

  
TextView textView;
int j = 6;
for(int i = 0; i < 24; i++)
{
  textView = (TextView) getLayoutInflater().inflate(R.layout.tracker_history_sidemenu_item,null);

  /* Add 0 infront or not */
  String t  = String.valueOf(j);
  if(t.length() == 1)
  {
    t = "0"+t;
  }

  textView.setText(String.valueOf(t));
  linearLayout.addView(textView);

  j++;
  if(j == 24)
  {
    j = 0;
  }

  textView.setOnTouchListener(new View.OnTouchListener()
  {
    @Override
    public boolean onTouch(View view, MotionEvent event)
    {
      TextView txt = (TextView) view;
      Log.d("LOCATION","OnTouch: " + txt.getText());
      return false;
    }
  });

  textView.setOnClickListener(new View.OnClickListener()
  {
    @Override
    public void onClick(View view)
    {
      TextView txt = (TextView) view;
      Log.d("LOCATION","OnClick: " + txt.getText());
    }
  });


}   }

1 个答案:

答案 0 :(得分:0)

您需要编写自定义ViewGroup并覆盖onInterceptTouchEvent。

class MyViewGroup extends LinearLayout {
    public boolean onInterceptTouchEvent(TouchEvent event) {
        // Check if the drag is done and return true to steal the touchevents away from the textviews.
    }

    public boolean onTouch(TouchEvent event) {
        // You will end up here after you return true from onInterceptTouchEvent
    }
}