从scrollview打开childview

时间:2009-05-24 18:27:18

标签: android android-scrollview

我有一个带有子视图的父ScrollView。当用户按下后退按钮时,我希望子视图处理该事件。我尝试了几件事,但似乎都没有。按后退按钮可以杀死活动。

public class GameScrollView extends ScrollView{

     public GameScrollView(Context context) {
          super(context);
     }
     @Override
     public boolean onInterceptTouchEvent (MotionEvent ev){
          return false;

     }
     @Override
     public boolean onKeyDown (int keyCode, KeyEvent event){
          return false;

     }
}
子视图中的

我有以下代码

public class GameView extends View implements OnTouchListener, onKeyListener{

     public boolean onKey(View v, int keyCode, KeyEvent event){
          if(keyCode == KeyEvent.KEYCODE_BACK){
                    //do stuff
          }
          invalidate();
          return true;        
     }
}

ScrollView我也尝试重写dispatchKeyEvent方法以返回false,但这也不起作用。我在这里做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

@Override 
public boolean onKeyDown(int i, KeyEvent event) {

      if (i == KeyEvent.KEYCODE_BACK) {
          return true;
        else {
          super.onKeyDown(i, event);
          return true;
        }
      }
      return false;
    }

另外,我认为您必须截取活动中的按键而不是视图。

答案 1 :(得分:1)

我明白了。这不起作用的原因是因为儿童观点没有焦点。

在子视图的构造函数中设置requestFocus()属性修复了问题。