Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – onChildClick事件在滚动列表视图后停止大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个应用程序,它使用通过Baseexpandablelistadapter填充项目的ExpandableListView小部件.该应用程序是为 Android 1.6版本构建的,当我使用Android Emulator(版本1.6版本)进行测试时,一切正常.我可以上下滚动列表,当我点击列表中的任何项目时,我得到一个onChildClick()事件.

但是,当我尝试在真正的Android手机上运行相同的应用程序(运行Gingerbread)时,如果我不滚动ExpandableListView,我只会获得onChildClick()事件.如果我滚动列表太多,我不再获取onChildClick事件(也没有itemClickEvents).@H_262_7@

所以我很困惑.滚动后,为什么我没有为listview项目获取任何onChild或onItem点击事件?请注意,如果我只滚动一小部分(比如2或3行),我会获得点击事件,但是再滚动,然后我不再获得列表中任何项目的点击事件.@H_262_7@

任何建议或意见将不胜感激.@H_262_7@

谢谢.@H_262_7@

解决方法

@H_673_17@ 好吧,我在这里回答我自己的问题,对于那些可能遇到同样问题的人.我遇到的问题似乎与ExpandableListView Widget的焦点状态有关.当我滚动列表时,ListView小部件似乎失去焦点,我无法选择任何列出的项目.我不确定解决这个问题的最佳方法是什么,但我确实让它发挥了作用.

我为ListView小部件添加一个滚动侦听器,如show所示:@H_262_7@

getExpandableListView().setOnScrollListener(this);

然后我在我的活动中添加一个方法,在完成滚动后将焦点设置回ListView小部件:@H_262_7@

@Override
public void onScrollStateChanged(AbsListView view,int scrollStatE) 
{   
    // - this method is called when there is a scroll event in the main ExpandableListView widget.

    // - after the user stops scrolling the listview,make sure to set the focus to the widget

    if ( scrollState == OnScrollListener.SCROLL_STATE_IDLE )
    {
       ExpandableListView elv = getExpandableListView();
   elv.requestFocusFromTouch();
    }
}

在这似乎解决了我的问题.我确信有更好的方法(如果你知道一个,请在这里发布),否则我的“黑客”似乎工作正常.@H_262_7@

希望它可以帮助有类似问题的人.@H_262_7@

大佬总结

以上是大佬教程为你收集整理的android – onChildClick事件在滚动列表视图后停止全部内容,希望文章能够帮你解决android – onChildClick事件在滚动列表视图后停止所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。