android keyevent列表,android-在RecyclerView视图上捕获KeyEvent

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

@Override

public 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;

}

});

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值