android-在RecyclerView视图上捕获KeyEvent

android-在RecyclerView视图上捕获KeyEvent,第1张

概述遵循this博客文章上的指示,我可以在垂直列表适配器上跟踪选定的项目,但是无法通过按某些键单击或长按任何项目.我已经创建了这种方法publicstaticbooleanisConfirmButton(KeyEventevent){switch(event.getKeyCode()){caseKeyEvent.KEYCODE_ENTER:c

遵循this博客文章上的指示,我可以在垂直列表适配器上跟踪选定的项目,但是无法通过按某些键单击或长按任何项目.

我已经创建了这种方法

public static boolean isConfirmbutton(KeyEvent event){    switch (event.getKeyCode()){        case KeyEvent.KEYCODE_ENTER:        case KeyEvent.KEYCODE_DPAD_CENTER:        case KeyEvent.KEYCODE_button_A:            return true;        default:            return false;    }}

拦截“确认”按钮,但是侦听KeyEvent的正确位置在哪里?如何区分点击和longclick?

解决方法:

我通过添加常规和长按按钮来编辑帖子中的代码:

@OverrIDepublic voID onAttachedToRecyclerVIEw(final RecyclerVIEw recyclerVIEw) {    super.onAttachedToRecyclerVIEw(recyclerVIEw);    mRecyclerVIEw = recyclerVIEw;    // Handle key up and key down and attempt to move selection    recyclerVIEw.setonKeyListener(new VIEw.OnKeyListener() {        @OverrIDe        public boolean onKey(VIEw v, int keyCode, KeyEvent event) {            RecyclerVIEw.LayoutManager lm = recyclerVIEw.getLayoutManager();            // Return false if scrolled to the bounds and allow focus to move off the List            if (event.getAction() == KeyEvent.ACTION_DOWN) {                if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {                    return tryMoveSelection(lm, 1);                } else if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {                    return tryMoveSelection(lm, -1);                } else if(KeyEventUtils.isConfirmbutton(event)){                    VIEw vIEw = mRecyclerVIEw.findVIEwHolderForAdapterposition(mSelectedItem).itemVIEw;                    if((event.getFlags() & KeyEvent.FLAG_LONG_PRESS)==KeyEvent.FLAG_LONG_PRESS) {                        vIEw.performlongClick();                    }                    else{                        vIEw.performClick();                    }                    return true;                }            }            return false;        }    });}

现在它可以正常工作,我不知道这是否是最优雅的方法.

总结

以上是内存溢出为你收集整理的android-在RecyclerView视图捕获KeyEvent全部内容,希望文章能够帮你解决android-在RecyclerView视图上捕获KeyEvent所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存