自定义View监听onKeyDown事件,View捕获焦点
2014-11-18 16:07
465 查看
最近在开始学习自定义的View, 想在自定义的View中监听onKeyDown事件,处理一些逻辑。发现基类View中有该函数,于是重写它。
然后在MainActivity中调用setContentView。
View contentView = new CustomView(this);
setContentView(contentView);CustomView继承View重写onKeyDown函数,结果发现它的onKeyDown函数没有执行。。
在网上找了点资料:原来是焦点的问题。我们的程序运行时默认的焦点是在Activity上,而View没有获得焦点,所以它的onKeyDown函数监听不到。
既然是这样,那应该让View获取到焦点就可以了监听了。
修改为 View contentView = new CustomView(this);
contentView.setFocusable(true);
contentView.setFocusableInTouchMode(true);
setContentView(contentView);或者在CustomView的构造函数中加上设置焦点的两句也可以让View获取到焦点。
setFocusable(true): 设置View能够获取到焦点。
setFocusableInTouchMode():设置是否有焦点来响应点触的资格
测试过程中发现会先执行View的onKeyDown事件,然后再执行Activity的,所以我们可以在View中的onKeyDown中返回false,来屏蔽掉Activiy中的对应事件。
然后在MainActivity中调用setContentView。
View contentView = new CustomView(this);
setContentView(contentView);CustomView继承View重写onKeyDown函数,结果发现它的onKeyDown函数没有执行。。
在网上找了点资料:原来是焦点的问题。我们的程序运行时默认的焦点是在Activity上,而View没有获得焦点,所以它的onKeyDown函数监听不到。
既然是这样,那应该让View获取到焦点就可以了监听了。
修改为 View contentView = new CustomView(this);
contentView.setFocusable(true);
contentView.setFocusableInTouchMode(true);
setContentView(contentView);或者在CustomView的构造函数中加上设置焦点的两句也可以让View获取到焦点。
setFocusable(true): 设置View能够获取到焦点。
setFocusableInTouchMode():设置是否有焦点来响应点触的资格
测试过程中发现会先执行View的onKeyDown事件,然后再执行Activity的,所以我们可以在View中的onKeyDown中返回false,来屏蔽掉Activiy中的对应事件。
相关文章推荐
- Android 自定义 View 中 onKeyDown监听 没反应
- Android自定义View之用观察者模式写自定义监听事件以及常用竖直型字母索引栏的写法
- Android_自定义View-和view的监听事件
- 自定义view的点击、长按、及长按手势监听事件
- Android捕获View焦点事件,LinearLayout结合HorizontalScrollView实现ViewPgaer和选项卡Tabs联动
- AlertDialog中使用自定义View,其中的Button如何设置点击事件监听
- 安卓中RecyclerView的简单使用和自定义RecyclerView的接口点击监听事件
- 5.轮播广告AndroidImageSlider的使用(包括自定义indicator,和sliderview的点击监听事件,架构分析)
- 给自定义View添加TouchEvent事件监听
- 十六、自定义联系人导航(下)---RecyclerView增加头部和事件监听
- EditText 监听、焦点事件、自定义样式全解及隐藏键盘
- Android捕获View焦点事件,LinearLayout结合HorizontalScrollView实现ViewPgaer和选项卡Tabs联动
- Android 自定义 View 中 onKeyDown监听 没反应
- Android捕获View焦点事件,LinearLayout结合HorizontalScrollView实现ViewPgaer和选项卡Tabs联动
- 自定义View及其监听事件
- 自定义webView,实现带title和返回的webView,监听webView的滑动事件
- Android 自定义 View 中 onKeyDown监听 没反应
- 关于实现自定义Dialog和实现Dialog里view的事件监听的两种方法
- 自定义View(4)——用户交互、点击事件监听
- Android之自定义View的监听事件