我的应用程序以前有一个用于显示文本的大型TextVIEw,在此期间,TAB事件被收到了. ListVIEw现在已经替换了TextVIEw.
我完全不知道为什么不再接收TAB事件.这是一个库存Xoom,运行ICS 4.0.4&股票N1,2.3.6.
我将当前代码与使用TextVIEw的版本进行了比较,而且大部分代码只是为了处理TextVIEw而不是TextVIEw.除了nextFocusleft和nextFocusRight属性之外,EditText没有其他任何改变.
编辑:我刚尝试使用Go Keyboard和Hacker的键盘,TAB收到了.看起来这只是一些虚拟键盘
解决方法 我想我可能会看到这个问题.查看ListVIEw. java的源代码,有一种机制可以使用在列表项中移动焦点的键事件.查看此方法之前的注释以及方法中间的注释块./** * To avoID horizontal focus searches changing the selected item,we * manually focus search within the selected item (as applicable),and * prevent focus from jumPing to something within another item. * @param direction one of {VIEw.FOCUS_left,VIEw.FOCUS_RIGHT} * @return Whether this consumes the key event. */private boolean handleHorizontalFocusWithinListItem(int direction) { if (direction != VIEw.FOCUS_left && direction != VIEw.FOCUS_RIGHT) { throw new IllegalArgumentException("direction must be one of" + " {VIEw.FOCUS_left,VIEw.FOCUS_RIGHT}"); } final int numChildren = getChildCount(); if (mItemsCanFocus && numChildren > 0 && mSelectedposition != INVALID_position) { final VIEw selectedVIEw = getSelectedVIEw(); if (selectedVIEw != null && selectedVIEw.hasFocus() && selectedVIEw instanceof VIEwGroup) { final VIEw currentFocus = selectedVIEw.findFocus(); final VIEw nextFocus = FocusFinder.getInstance().findNextFocus( (VIEwGroup) selectedVIEw,currentFocus,direction); if (nextFocus != null) { // do the math to get interesting rect in next focus' coordinates currentFocus.getFocusedRect(mTempRect); offsetDescendantRectToMyCoords(currentFocus,mTempRect); offsetRectIntoDescendantCoords(nextFocus,mTempRect); if (nextFocus.requestFocus(direction,mTempRect)) { return true; } } // we are blocking the key from being handled (by returning true) // if the global result is going to be some other vIEw within this // List. this is to acheive the overall goal of having // horizontal d-pad navigation remain in the current item. final VIEw globalNextFocus = FocusFinder.getInstance().findNextFocus( (VIEwGroup) getRootVIEw(),direction); if (globalNextFocus != null) { return isVIEwAncestorOf(globalNextFocus,this); } } } return false;}
单个列表元素中是否有多个可聚焦项目?如果是这样,此代码将使用Tab键.如果是这种情况,那么您可能想要使一些项目不可聚焦或考虑另一种设计选项.
总结以上是内存溢出为你收集整理的android – EditText没有收到TAB键事件 – stock soft vk全部内容,希望文章能够帮你解决android – EditText没有收到TAB键事件 – stock soft vk所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)