android–espresso长按菜单项和d出菜单

android–espresso长按菜单项和d出菜单,第1张

概述更新:似乎只是在使用应用程序时,在某些随机时间,当我长时间点击时,应用程序将崩溃,尤其是在屏幕底部的项目上.关于为什么会这样的任何想法?所以我的应用程序中有一个列表视图.如果您单击列表视图项目,则会出现一个d出菜单,该菜单锚定到您已经长按的项目,并带有删除或编辑菜单项的选项.只需使用该应用程序,一切正常.您可以长按列表中的任何项目,删除基础关联数据,并刷新列

更新:似乎只是在使用应用程序时,在某些随机时间,当我长时间点击时,应用程序将崩溃,尤其是在屏幕底部的项目上.关于为什么会这样的任何想法?

所以我的应用程序中有一个列表视图.如果您单击列表视图项目,则会出现一个d出菜单,该菜单锚定到您已经长按的项目,并带有删除或编辑菜单项的选项.只需使用该应用程序,一切正常.您可以长按列表中的任何项目,删除基础关联数据,并@R_85_6419@视图,而不刷新您刚刚删除的项目.

 我正在做的事情:
Espresso不喜欢我的列表视图和长按.我只是试图测试d出菜单出现,但我甚至无法成功地获得浓缩咖啡.我认为这个问题与d出菜单有关.所以对于初学者来说,我只是想让浓缩咖啡变成longclick而不会让我心烦意乱.一旦espresso成功点击,我想我可以弄清楚如何检查是否显示d出窗口.

我到目前为止所尝试的内容:我读到关闭动画应该可以帮助浓缩咖啡减少干扰.我关掉了所有的动画,问题仍然存在.我甚至可以在手机上观看测试运行并看到它正在长按正确的菜单项,但是当完成longclick并且d出菜单出现时,测试失败

码:
这是espresso测试线失败.我之前使用了相同的代码行,除了click()和应用程序做了它应该做的事情,espresso很高兴. mCourseCount只是列表中最后一项的索引.那不是问题.我在其他几个测试中更新了相同的索引,一切正常.

onData(anything()).inAdapterVIEw(withID(R.ID.ListvIEw_class))          .atposition(mCourseCount).perform(longClick());

失败时,堆栈跟踪中存在几条有趣的行

 androID.support.test.espresso.PerformException: Error performing 'long click' on vIEw ' displaying data matching: ANYTHING within adapter vIEW matching: with ID: com.CMSc355.classcompass.classcompass:ID/ListvIEw_class'

后来

 Caused by: java.lang.IllegalStateException: MenuPopupHelper cannot be used without an anchor at com.androID.internal.vIEw.menu.MenuPopupHelper.show(MenuPopupHelper.java:101) at androID.Widget.PopupMenu.show(PopupMenu.java:108)at com.CMSc355.classcompass.classcompass.CourseMenuFragment. onItemLongClick(CourseMenuFragment.java:91)

堆栈跟踪的最后一位令人困惑,因为我使用锚定义设置d出菜单如下(这是来自第91行的CourseMenuFragment):

    ListVIEw.setonItemLongClickListener(new AdapterVIEw.OnItemLongClickListener() {        @OverrIDe        public boolean onItemLongClick(AdapterVIEw

在首次实例化d出窗口的行中,ListVIEw.getChildAt(position)定义d出菜单的锚点.也许这有问题吗?但正如所提到的,当与我自己进行交互时,一切都完全正常.

任何指导将不胜感激.如果需要澄清,请告诉我.

最佳答案找到解决方案我正在错误地访问列表项.代替

PopupMenu popupEdit = new PopupMenu(getActivity(),ListVIEw.getChildAt(position));

我换了

PopupMenu popupEdit = new PopupMenu(getActivity(),ListVIEw.getChildAt(position - ListVIEw.getFirstVisibleposition()));

当我在列表中向下滚动时,我不得不调整位置的索引.我讨厌在SO上回答我自己的问题,但也许这会帮助别人. 总结

以上是内存溢出为你收集整理的android – espresso长按菜单项和d出菜单全部内容,希望文章能够帮你解决android – espresso长按菜单项和d出菜单所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1139235.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)