
不幸的是我不能使用处理程序,因为这不是一个很常用的功能,我不想牺牲较小功能的性能.
这是我没有工作的代码(不管是什么,focusedVIEw总是为null):
mainListVIEw.setonFocuschangelistener(new OnFocuschangelistener() { public voID onFocusChange(VIEw v,boolean hasFocus) { if(focusedVIEw == null ) { Log.i("focus","focusedVIEw == null"); } if(hasFocus && focusedVIEw != null) { Log.i("focus","Focus has been RecIEved............."); focusedVIEw.requestFocus(); } else { // Focus has been lost so save the ID of what the user had selected Log.i("focus","Focus has been Lost............."); focusedVIEw = mainListVIEw.findFocus(); } } }); 谢谢!
解决方法 我认为你有自己的答案,因为焦点监听器在失去焦点后被调用,因此没有孩子会聚焦,因此.findFocus()将返回null.我最好的办法是扩展ListVIEw类,并覆盖onFocusChanged方法.基本上做你正在做的事情,但是当gainFocus为真时在其中做.
@OverrIDeprotected voID onFocusChanged (boolean gainFocus,int direction,Rect prevIoUslyFocusedRect) { if(gainFocus) focusedVIEw = mainListVIEw.findFocus();} This one
总结以上是内存溢出为你收集整理的android – 获得最后焦点的孩子全部内容,希望文章能够帮你解决android – 获得最后焦点的孩子所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)